HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

分享个hb 即时会话的APP防微信小程序功能

小程序 IM

分享个 hb 即时会话的APP
防微信 带小程序功能 首页
下载链接

继续阅读 »

分享个 hb 即时会话的APP
防微信 带小程序功能 首页
下载链接

收起阅读 »

uni-app 中如何刷新页面

返回刷新 uniapp

我们知道 ,html重新加载页面有几种方式

  1. reload():强迫浏览器刷新当前页面 ;
  2. replace() :通过指定URL替换当前缓存在历史里(客户端)的项目 ;
  3. 添加标签<meta http-equiv="refresh" content="20"> : 页面自动刷新;

而在uni-app 中并没有页面重新加载和刷新当前页面的概念,所以接下来,告诉不会的同学 uni-app 中怎么刷新页面。

如何刷新页面

场景:从个人中心页面,进入登录页面。登录成功之后返回个人中心页面,个人中心页面数据进行相应的变化。

  1. 使用缓存

    点击登录按钮之后,关键代码:

    // ...  
    methods: {  
        bindLogin(e) {  
            try {  
                uni.setStorageSync('login_key', {  
                    avatarUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uploads/nav_menu/10.jpg',  
                    token: 'user123456',  
                    userName: '缓存登录用户',  
                    login: true  
                });  
            } catch (e) {  
                // error  
            }  
            uni.navigateBack();  
        }  
    }  
    // ...  

    返回到个人中心页面,关键代码:

    // ...  
    data(){  
        return {  
            storageData:{}  
        }  
    },  
    onShow: {  
        const loginKey = uni.getStorageSync('login_key');  
    
        if (loginKey) {  
            console.log(loginKey);  
            this.storageData = {  
                avatarUrl: loginKey.avatarUrl,  
                login: loginKey.login,  
                userName: loginKey.userName  
            };  
        }  
    }  
    // ...  
  2. 使用 vuex

    vuex 关键代码

    // ...  
    const store = new Vuex.Store({  
        state: {  
            login: false,  
            token: '',  
            avatarUrl: '',  
            userName: ''  
        },  
        mutations: {  
            login(state, provider) {  
                state.login = true;  
                state.token = provider.token;  
                state.userName = provider.userName;  
                state.avatarUrl = provider.avatarUrl;  
            },  
            logout(state) {  
                state.login = false;  
                state.token = '';  
                state.userName = '';  
                state.avatarUrl = '';  
            }  
        }  
    })  
    // ...  

    点击登录按钮之后,关键代码:

    import { mapMutations } from 'vuex';  
    // ...  
    methods: {  
        bindLogin(e) {  
    
            this.login({  
                avatarUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uploads/nav_menu/10.jpg',  
                token: 'user123456',  
                userName: 'vuex登录用户'  
            });  
            uni.navigateBack();  
        },  
        ...mapMutations(['login'])  
    }  
    // ...  

    返回到个人中心页面,关键代码:

    import { mapState } from 'vuex';  
    
    // ...  
    computed: {  
        ...mapState(['avatarUrl', 'login', 'userName'])  
    }  
    // ...  

关联阅读:uni-app 全局变量的几种实现方式

结语: 整体下来都没有什么难点的,推荐使用 vuex 去实现类似功能。

完成示例,请下载附件。

继续阅读 »

我们知道 ,html重新加载页面有几种方式

  1. reload():强迫浏览器刷新当前页面 ;
  2. replace() :通过指定URL替换当前缓存在历史里(客户端)的项目 ;
  3. 添加标签<meta http-equiv="refresh" content="20"> : 页面自动刷新;

而在uni-app 中并没有页面重新加载和刷新当前页面的概念,所以接下来,告诉不会的同学 uni-app 中怎么刷新页面。

如何刷新页面

场景:从个人中心页面,进入登录页面。登录成功之后返回个人中心页面,个人中心页面数据进行相应的变化。

  1. 使用缓存

    点击登录按钮之后,关键代码:

    // ...  
    methods: {  
        bindLogin(e) {  
            try {  
                uni.setStorageSync('login_key', {  
                    avatarUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uploads/nav_menu/10.jpg',  
                    token: 'user123456',  
                    userName: '缓存登录用户',  
                    login: true  
                });  
            } catch (e) {  
                // error  
            }  
            uni.navigateBack();  
        }  
    }  
    // ...  

    返回到个人中心页面,关键代码:

    // ...  
    data(){  
        return {  
            storageData:{}  
        }  
    },  
    onShow: {  
        const loginKey = uni.getStorageSync('login_key');  
    
        if (loginKey) {  
            console.log(loginKey);  
            this.storageData = {  
                avatarUrl: loginKey.avatarUrl,  
                login: loginKey.login,  
                userName: loginKey.userName  
            };  
        }  
    }  
    // ...  
  2. 使用 vuex

    vuex 关键代码

    // ...  
    const store = new Vuex.Store({  
        state: {  
            login: false,  
            token: '',  
            avatarUrl: '',  
            userName: ''  
        },  
        mutations: {  
            login(state, provider) {  
                state.login = true;  
                state.token = provider.token;  
                state.userName = provider.userName;  
                state.avatarUrl = provider.avatarUrl;  
            },  
            logout(state) {  
                state.login = false;  
                state.token = '';  
                state.userName = '';  
                state.avatarUrl = '';  
            }  
        }  
    })  
    // ...  

    点击登录按钮之后,关键代码:

    import { mapMutations } from 'vuex';  
    // ...  
    methods: {  
        bindLogin(e) {  
    
            this.login({  
                avatarUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uploads/nav_menu/10.jpg',  
                token: 'user123456',  
                userName: 'vuex登录用户'  
            });  
            uni.navigateBack();  
        },  
        ...mapMutations(['login'])  
    }  
    // ...  

    返回到个人中心页面,关键代码:

    import { mapState } from 'vuex';  
    
    // ...  
    computed: {  
        ...mapState(['avatarUrl', 'login', 'userName'])  
    }  
    // ...  

关联阅读:uni-app 全局变量的几种实现方式

结语: 整体下来都没有什么难点的,推荐使用 vuex 去实现类似功能。

完成示例,请下载附件。

收起阅读 »

头像裁剪压缩,分享下图片裁剪压缩,jq头像裁剪

图片裁剪 头像裁剪

1.可以手动移动底图,放大缩小,随意移动,方框可以改成圆框,我的头像是方框的

2.宣传图片,45度多次旋转,左右旋转,上下旋转




3.裁剪完显示裁剪区域

非常感谢王者地带,是昨天学习了他的app后,自己改造一下,和他稍有区别![/鞠躬]

继续阅读 »

1.可以手动移动底图,放大缩小,随意移动,方框可以改成圆框,我的头像是方框的

2.宣传图片,45度多次旋转,左右旋转,上下旋转




3.裁剪完显示裁剪区域

非常感谢王者地带,是昨天学习了他的app后,自己改造一下,和他稍有区别![/鞠躬]

收起阅读 »

云打包苹果开发者账号被封

iOS打包 打包 Apple云端打包

苹果开发者账号被封 , 被封的原因是 把p12证书和Provisioning Profiles文件上传到第三方打包平台 或 云打包之类的平台 ; 现在账号被封了, 什么鬼? 企业号被封不好解封啊...

苹果开发者账号被封 , 被封的原因是 把p12证书和Provisioning Profiles文件上传到第三方打包平台 或 云打包之类的平台 ; 现在账号被封了, 什么鬼? 企业号被封不好解封啊...

郑州微信小程序制作费用,开发公司怎么找

微信小程序 小程序

  郑州微信小程序开发平台给移动互联网解决的痛点,以及它基于微信大量用户入口的利好;很多郑州小程序开发公司,无论是互联网企业,还是传统企业,都想利用微信小程序为自己的服务创造更多的生机。那么,做一个微信小程序究竟需要投入多少钱呢?先给大家分析下小程序开发的成本组成,让大家详细的了解下。

  一、人力成本,开发费用较大的成分所在,分为软件前端,后端,软件设计,服务器运维,维护费用。根据用户需求而定。

  二、消耗成本,开发公司场地费用,水电费用,电脑设配等。这些消耗成本是每一家小程序开发公司都存在的,所以一款小程序的开发报价中,其实都是包含这些方面的成本在内的。

  三、设计开发成本,一个普通的小程序页面的设计开发成本一般为500元,复杂一点的800元。这里“复杂”一般指的是页面特别长、内容特别多、或者有动画的情况。设计开发成本这一部分是最不稳定的,往往需要开发者和需求方深入沟通后才能确定。不过如果没有比较特殊的情况,上面的报价还是比较靠谱的。

  四,公司利润,公司肯定要赚钱,利润的定价也分什么公司了,大公司品牌的价格较高。小公司为的销量做起来,价格较低,基本够开销,亏钱都愿意做的也有。

  此外,如果你的小程序里需要支付的功能,那么需要300元的微信认证费用。如果你的小程序积累了大量的用户数据和资源,那么会有对应的存储费用和流量费用,不过这些费用都不高,刚开始一般是免费的,即便涉及费用,早期一个月十几块钱也能搞定。

  其实这些公司开发的小程序基本都一致,只要用户需要的功能什么的都会上,价格在这里表现,功能多样式多价格高,功能少样式少价格自然而然少了。
本文由专业的郑州微信小程序开发燚轩科技整理发布。

继续阅读 »

  郑州微信小程序开发平台给移动互联网解决的痛点,以及它基于微信大量用户入口的利好;很多郑州小程序开发公司,无论是互联网企业,还是传统企业,都想利用微信小程序为自己的服务创造更多的生机。那么,做一个微信小程序究竟需要投入多少钱呢?先给大家分析下小程序开发的成本组成,让大家详细的了解下。

  一、人力成本,开发费用较大的成分所在,分为软件前端,后端,软件设计,服务器运维,维护费用。根据用户需求而定。

  二、消耗成本,开发公司场地费用,水电费用,电脑设配等。这些消耗成本是每一家小程序开发公司都存在的,所以一款小程序的开发报价中,其实都是包含这些方面的成本在内的。

  三、设计开发成本,一个普通的小程序页面的设计开发成本一般为500元,复杂一点的800元。这里“复杂”一般指的是页面特别长、内容特别多、或者有动画的情况。设计开发成本这一部分是最不稳定的,往往需要开发者和需求方深入沟通后才能确定。不过如果没有比较特殊的情况,上面的报价还是比较靠谱的。

  四,公司利润,公司肯定要赚钱,利润的定价也分什么公司了,大公司品牌的价格较高。小公司为的销量做起来,价格较低,基本够开销,亏钱都愿意做的也有。

  此外,如果你的小程序里需要支付的功能,那么需要300元的微信认证费用。如果你的小程序积累了大量的用户数据和资源,那么会有对应的存储费用和流量费用,不过这些费用都不高,刚开始一般是免费的,即便涉及费用,早期一个月十几块钱也能搞定。

  其实这些公司开发的小程序基本都一致,只要用户需要的功能什么的都会上,价格在这里表现,功能多样式多价格高,功能少样式少价格自然而然少了。
本文由专业的郑州微信小程序开发燚轩科技整理发布。

收起阅读 »

关于“无法定位程序输入点??4QDateTime@@QAEAAV0@$$QAV0@@Z于动态链接库XXX.dll上”我的解决办法

HBuilderX


首先进入主目录的bin文件夹,找到错误弹框里面提到的dll文件(如上图的Qt5Core.dll),然后扔到System32或者SysWOW64文件夹,怕麻烦所以还注册了一下,然后HBuilderX就这样给我打开了。至于是不是每个人适用有待大伙们的反馈。(PS:我后面尝试还原错误现场把SysWOW64文件夹里的之前报错的dll删了,结果发现HBuilderX还能打开)

继续阅读 »


首先进入主目录的bin文件夹,找到错误弹框里面提到的dll文件(如上图的Qt5Core.dll),然后扔到System32或者SysWOW64文件夹,怕麻烦所以还注册了一下,然后HBuilderX就这样给我打开了。至于是不是每个人适用有待大伙们的反馈。(PS:我后面尝试还原错误现场把SysWOW64文件夹里的之前报错的dll删了,结果发现HBuilderX还能打开)

收起阅读 »

郑州手机app开发,自己组建团队划算吗

5+App开发 移动APP

  郑州app开发和郑州app制作已经不再是什么新鲜事了,许多企业都知道,专属独立品牌app开发是企业在移动互联网未来生存发展的重要选择。而app开发要多少钱就成为了许多客户首要关心的问题。一般来说决定一款企业app开发价格的因素主要有两个:一是架构的复杂性,二是app开发投入的人力以及时间。

  今天从app开发公司的角度,一起来算一下中小型app从无到有需要做哪些工作,以及为达成使命,需要付出多少金钱代价。

  首先假设在开发app之前我们已经有了一个成熟的团队,app的团队结构以架构师兼后台开发1名+安卓1名+iOS开发1名+产品经理1名+前端开发1名+设计师1名。你可能也发现了这些人员配备都是单点的,一旦有人生病或请假,某个职位就会缺失,项目进度就会拖后,所以我们大约配备2个浮动名额,也就是,初始团队大概有8名。

  我们假设团队平均工资在8000左右,需要给员工缴纳五险一金,除工资的部分,还要平均为每个员工多缴纳3000元的五险一金支出,员工部分的支出是(8000+3000)*8=88000元/月;有了app开发团队,下一步要解决的是工作场所的问题,8人团队可以选择中低端的办公场所,是否划算,得创业团队自己掂量,算上水电、物业,一个月15000左右算比较省了。

  有了场地和团队,接下来置换办公耗材、宽带之类的(假设电脑自己带),普通的人体工程学椅子价格在150元左右,如果不买工程学椅子也可以,用普通的椅子,加上桌子平摊成本,桌椅需要200左右的成本,这算一次性付出。拍脑袋,6000元可以搞定吧。

  6个月的时间,算快,一个app从无到有需要的费用大概这么算:人工费用: 88000元6个月 ≈ 52 w。场地租金: 15000元6个月 = 9w。办公耗材+桌椅支出:1w。服务器、域名、周边IT基础费用:2w。

  是的,当有人问独立开发一个app要多少钱?你可以回答一个不太复杂的app,从无到有做出来,半年第一个版本出来,需要100万,真的是不夸张的说,所以从这一点可以看出来,企业还是选择app开发公司更加明智一些。
本文由专业的郑州app制作燚轩科技整理发布。

继续阅读 »

  郑州app开发和郑州app制作已经不再是什么新鲜事了,许多企业都知道,专属独立品牌app开发是企业在移动互联网未来生存发展的重要选择。而app开发要多少钱就成为了许多客户首要关心的问题。一般来说决定一款企业app开发价格的因素主要有两个:一是架构的复杂性,二是app开发投入的人力以及时间。

  今天从app开发公司的角度,一起来算一下中小型app从无到有需要做哪些工作,以及为达成使命,需要付出多少金钱代价。

  首先假设在开发app之前我们已经有了一个成熟的团队,app的团队结构以架构师兼后台开发1名+安卓1名+iOS开发1名+产品经理1名+前端开发1名+设计师1名。你可能也发现了这些人员配备都是单点的,一旦有人生病或请假,某个职位就会缺失,项目进度就会拖后,所以我们大约配备2个浮动名额,也就是,初始团队大概有8名。

  我们假设团队平均工资在8000左右,需要给员工缴纳五险一金,除工资的部分,还要平均为每个员工多缴纳3000元的五险一金支出,员工部分的支出是(8000+3000)*8=88000元/月;有了app开发团队,下一步要解决的是工作场所的问题,8人团队可以选择中低端的办公场所,是否划算,得创业团队自己掂量,算上水电、物业,一个月15000左右算比较省了。

  有了场地和团队,接下来置换办公耗材、宽带之类的(假设电脑自己带),普通的人体工程学椅子价格在150元左右,如果不买工程学椅子也可以,用普通的椅子,加上桌子平摊成本,桌椅需要200左右的成本,这算一次性付出。拍脑袋,6000元可以搞定吧。

  6个月的时间,算快,一个app从无到有需要的费用大概这么算:人工费用: 88000元6个月 ≈ 52 w。场地租金: 15000元6个月 = 9w。办公耗材+桌椅支出:1w。服务器、域名、周边IT基础费用:2w。

  是的,当有人问独立开发一个app要多少钱?你可以回答一个不太复杂的app,从无到有做出来,半年第一个版本出来,需要100万,真的是不夸张的说,所以从这一点可以看出来,企业还是选择app开发公司更加明智一些。
本文由专业的郑州app制作燚轩科技整理发布。

收起阅读 »

关于微信里wx.getUserInfo获取用户信息都是拼音的转成中文方法

微信登录
  1. 加在js里面
wx.getUserInfo({  
  lang:"zh_CN",  
  success: function(res) {  
    var userInfo = res.userInfo  
    var nickName = userInfo.nickName  
    var avatarUrl = userInfo.avatarUrl  
    var gender = userInfo.gender //性别 0:未知、1:男、2:女  
    var province = userInfo.province  
    var city = userInfo.city             
    var country = userInfo.country  
  }

2.加在 行内

<button open-type='getUserInfo' lang="zh_CN" bindgetuserinfo="onGotUserInfo"></button>  

力量本身并不可怕,可怕的是它的主人。

继续阅读 »
  1. 加在js里面
wx.getUserInfo({  
  lang:"zh_CN",  
  success: function(res) {  
    var userInfo = res.userInfo  
    var nickName = userInfo.nickName  
    var avatarUrl = userInfo.avatarUrl  
    var gender = userInfo.gender //性别 0:未知、1:男、2:女  
    var province = userInfo.province  
    var city = userInfo.city             
    var country = userInfo.country  
  }

2.加在 行内

<button open-type='getUserInfo' lang="zh_CN" bindgetuserinfo="onGotUserInfo"></button>  

力量本身并不可怕,可怕的是它的主人。

收起阅读 »

【素与简科技】家居行业开发小程序 好不好?

小程序

家居行业,作为传统行业,由于产品的特性,更多的选择线下卖场实体感受和购买。

随着微信小程序的火热,家居行业也选择开发自己的小程序。

并且结合实体店铺体验,在线购买率逐渐提升,让家居行业业绩提升十分明显。

那么开发小程序,对家居行业有什么好处呢?素与简智能科技(http://www.suyujane.com)专业小程序开发为您解答:

家居行业开发小程序
一:线上线下结合,客户购买率更高

通过在线查看效果图,或者视频,动画展示家居产品,具体尺寸信息等,对比产品价格,效果,样式。

足不出户可以浏览更多的信息,看准喜欢的再去实体店体验质量和做工,感受具体家居产品。

通过这样线上线下结合的方式,会让客户好感度上升,并且成交量提升。

二:分析客户,利于营销

通过开发小程序,可以了解客户信息,对客户浏览和喜好进行数据统计。

针对客户喜好,精准营销,给客户提供具体产品信息,优势,以及对应的优惠活动等等。

掌握客户心里和需求,营销自然更加精准,更能有效提高销售量。

三:成本低,效果好

开发小程序的成本相对APP来说是比较低的,对企业来说并不会付出太多成本。

并且小程序依托微信,不需要下载安装,更容易企业推广宣传,客户关注即可使用。

四:巧用微信流量,让店铺更受欢迎

微信自带社交属性,并且有分享功能,附近小程序功能,附近店铺等等。

依托强大的用户群体,很好的分享店铺信息,流量来源会更广,不错的产品会被更多的用户选择。

五:客户体验更好,复购和裂变更有效

体验过小程序带来的方便,结合实体店真实感受,购买后的客户,会分享给自己的朋友。

或者在下次想到购买其他家居产品的时候,还会再次选择来店购买。

裂变和复购率自然增长,良好的用户体验会让企业更受欢迎。

继续阅读 »

家居行业,作为传统行业,由于产品的特性,更多的选择线下卖场实体感受和购买。

随着微信小程序的火热,家居行业也选择开发自己的小程序。

并且结合实体店铺体验,在线购买率逐渐提升,让家居行业业绩提升十分明显。

那么开发小程序,对家居行业有什么好处呢?素与简智能科技(http://www.suyujane.com)专业小程序开发为您解答:

家居行业开发小程序
一:线上线下结合,客户购买率更高

通过在线查看效果图,或者视频,动画展示家居产品,具体尺寸信息等,对比产品价格,效果,样式。

足不出户可以浏览更多的信息,看准喜欢的再去实体店体验质量和做工,感受具体家居产品。

通过这样线上线下结合的方式,会让客户好感度上升,并且成交量提升。

二:分析客户,利于营销

通过开发小程序,可以了解客户信息,对客户浏览和喜好进行数据统计。

针对客户喜好,精准营销,给客户提供具体产品信息,优势,以及对应的优惠活动等等。

掌握客户心里和需求,营销自然更加精准,更能有效提高销售量。

三:成本低,效果好

开发小程序的成本相对APP来说是比较低的,对企业来说并不会付出太多成本。

并且小程序依托微信,不需要下载安装,更容易企业推广宣传,客户关注即可使用。

四:巧用微信流量,让店铺更受欢迎

微信自带社交属性,并且有分享功能,附近小程序功能,附近店铺等等。

依托强大的用户群体,很好的分享店铺信息,流量来源会更广,不错的产品会被更多的用户选择。

五:客户体验更好,复购和裂变更有效

体验过小程序带来的方便,结合实体店真实感受,购买后的客户,会分享给自己的朋友。

或者在下次想到购买其他家居产品的时候,还会再次选择来店购买。

裂变和复购率自然增长,良好的用户体验会让企业更受欢迎。

收起阅读 »

uniapp,MUI,HTML5+,webapp开发,前端后端,提供技术服务

uniapp,MUI,HTML5+,webapp开发,前端、后端、全栈开发

提供技术服务,长期有效

QQ: 1214237256
WX: 17629229397

uniapp,MUI,HTML5+,webapp开发,前端、后端、全栈开发

提供技术服务,长期有效

QQ: 1214237256
WX: 17629229397

离线打包拉起微信小程序

h5+ 微信小程序 离线打包

第一步

先在 微信开放平台登记应用和绑定小程序

第二步

在你的Android 项目里面建立一个class 随便一个名称都可以
注意微信开放平台的文档 中的context 就是你当前的activity

package 你的包名; //你的Android 项目包名,默认生成的  

import android.annotation.SuppressLint;  
import android.app.Activity;  
import android.support.v7.app.AppCompatActivity;  

import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;  
import com.tencent.mm.opensdk.openapi.IWXAPI;  
import com.tencent.mm.opensdk.openapi.WXAPIFactory;  

@SuppressLint("Registered")  
public class MainActivity extends AppCompatActivity {  

    public static void launchMiniProgram(Activity activity,String programId) {//这里我传入了当前的activity,和我要拉起的小程序原始ID  
        String appId = "你的APPID"; // 填应用AppId  
        IWXAPI api = WXAPIFactory.createWXAPI(activity, appId);  

        WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();  
        req.userName = programId; // 填小程序原始id (gh_开头)  
        req.path = "";                  //拉起小程序页面的可带参路径,不填默认拉起小程序首页  
        req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版  
        api.sendReq(req);  
    }  
}

第三步

点击你的Android studio 右上方的运行---(我这边默认是以USB 真机调试的)


运行完成后----切换到你的HTML 页面在你需要拉起小程序的点击按钮触发下面代码

mui.plusReady(() => {  
          let obj = plus.android.runtimeMainActivity();//获取应用主Activity实例对象  
          let url = 你的应用包名; (com.xxxx.xxxx这种)  
          plus.android.invoke(`${url}.MainActivity`, 'launchMiniProgram', obj, programId); (programId === >小程序原始ID)  
        })

如果点击发现Android studio 控制台出现 req 19 需要打包成release 版本然后运行即可

还有如果拉起小程序出现跳转失败 记得检查jks 的应用签名是不是跟开放平台登记的有误

继续阅读 »

第一步

先在 微信开放平台登记应用和绑定小程序

第二步

在你的Android 项目里面建立一个class 随便一个名称都可以
注意微信开放平台的文档 中的context 就是你当前的activity

package 你的包名; //你的Android 项目包名,默认生成的  

import android.annotation.SuppressLint;  
import android.app.Activity;  
import android.support.v7.app.AppCompatActivity;  

import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;  
import com.tencent.mm.opensdk.openapi.IWXAPI;  
import com.tencent.mm.opensdk.openapi.WXAPIFactory;  

@SuppressLint("Registered")  
public class MainActivity extends AppCompatActivity {  

    public static void launchMiniProgram(Activity activity,String programId) {//这里我传入了当前的activity,和我要拉起的小程序原始ID  
        String appId = "你的APPID"; // 填应用AppId  
        IWXAPI api = WXAPIFactory.createWXAPI(activity, appId);  

        WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();  
        req.userName = programId; // 填小程序原始id (gh_开头)  
        req.path = "";                  //拉起小程序页面的可带参路径,不填默认拉起小程序首页  
        req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版  
        api.sendReq(req);  
    }  
}

第三步

点击你的Android studio 右上方的运行---(我这边默认是以USB 真机调试的)


运行完成后----切换到你的HTML 页面在你需要拉起小程序的点击按钮触发下面代码

mui.plusReady(() => {  
          let obj = plus.android.runtimeMainActivity();//获取应用主Activity实例对象  
          let url = 你的应用包名; (com.xxxx.xxxx这种)  
          plus.android.invoke(`${url}.MainActivity`, 'launchMiniProgram', obj, programId); (programId === >小程序原始ID)  
        })

如果点击发现Android studio 控制台出现 req 19 需要打包成release 版本然后运行即可

还有如果拉起小程序出现跳转失败 记得检查jks 的应用签名是不是跟开放平台登记的有误

收起阅读 »