最近APP项目开发完成,在评审会上老板提了一个需求,想在开发的APP上添加一个链接,可以跳转公司的小程序商城。
原以为会很复杂,结果只有短短的几行代码。
plus.share.getServices(function(res){
var sweixin = null;
for(var i=0;i<res.length;i++){
var t = res[i];
if(t.id == 'weixin'){
sweixin = t;
}
}
if(sweixin){
sweixin.launchMiniProgram({
id: 'gh_8888888', //这里写你的小程序原始id(以gh开头)
type: 0,//这里是不同的环境(默认0)
path:'/pages/shop/index?storeId=123456'//这里是指定页的路径,如需传参直接字符串拼接(首页可以省略)
});
}
},function(res){
console.log(JSON.stringify(res));
});
代码加上后,用真机运行了一遍,完美的跳转到目标小程序,竟然如此顺利。开心打包,准备结项。然后发现Manifest.json报错,无法打包
经检查后发现是mainfest.json文件下App模块配置中Share(分享)内ios平台通用链接(Universal Links)不能为空
我们来配置一下,点击参考文档,按照给出的步骤配置生成Universal Links,一共三步。
参考文档:uni-app官网
开通云服务空间和前端网页托管:开通uniCloud(阿里云版)云服务空间和开通前端网页托管 - DCloud问答
当完成前两步后,点击自动生成按钮,按提示就可生成自己的Universal Links
接下来进行第三步,将Universal Links配置到微信开放平台。
登陆微信开放平台,在移动应用模块,创建移动应用
微信开放平台:微信开放平台
------------------------------------------------------------分割线------------------------------------------------------------
------------------------------------------------------------分割线------------------------------------------------------------
在android应用中,应用签名就是我们生成证书时,证书中的MD5,当然,此处要把MD5签名中的“:”去掉,然后大写字母换成小写。比如:
MD5为:18:12:66:53:D0:E2:89:95:5A;F1:6F:45:EE:FA:2C:48
应用签名就是:18126653d0e289955af16f45eefa2c48
查询指令为:keytool -list -v - keystore xxx.keystore
此处,有些小伙伴查询时只有SHA1和SHA256,没有MD5。那是因为SDK版本的问题,高版本的摒弃了MD5,请下载较低版本,进行查询。我用的是:jre1.8.0_71
全部填写完成后,提交审核,审核通过后,就有了移动应用跳转小程序的权限
此时,打包app,跳转小程序,如果返回弹窗“bad_param” ,那是因为manifest.json中Share(分享)中的appid写错了,要写在微信开发平台中创建应用的appid:
此时,打包app,跳转小程序,如果返回弹窗“has_no_permisson”,那是因为你的微信开发平台账号没有进行认证,必须进行企业认证后才可以使用
认证需要缴300大洋,并且进行企业打款认证。当企业信息审核完,公司账户打款认证之前,会有审核专员给你打电话确认,记住这个手机号,后面有用。另再公司打款认证之前会有一个审核充填按钮,里面让上传文件。别点,不用管它,不需要操作。当你完成打款认证后,需要告诉审核专员,就是那个手机号,Call her。她会问你公司名,然后给你发布认证,认证通过后就可以跳转小程序啦
这个功能做下来遇到了各种各样的坑,磕磕绊绊忙活了将近一周,从网上找解决方案也都不是很全,东拼西凑实在难受。自己整理一版比较完整的方案,记录了我遇到的各种坑和解决方案。应该有和我一样初次接触的小伙伴,所以说的比较详细,大神不要嫌我啰嗦,希望可以帮到大家