uniapp 应用APP跳转微信小程序

        最近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。她会问你公司名,然后给你发布认证,认证通过后就可以跳转小程序啦

这个功能做下来遇到了各种各样的坑,磕磕绊绊忙活了将近一周,从网上找解决方案也都不是很全,东拼西凑实在难受。自己整理一版比较完整的方案,记录了我遇到的各种坑和解决方案。应该有和我一样初次接触的小伙伴,所以说的比较详细,大神不要嫌我啰嗦,希望可以帮到大家

要在 H5 页面中跳转微信小程序,需要使用微信提供的 JS-SDK。 首先,在 H5 页面中引入微信 JS-SDK: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 然后,在页面加载完成后,初始化 JS-SDK: ```javascript wx.config({ // 这里需要填写微信公众号的 appid appId: 'your_app_id', // 这里需要填写当前页面的完整 URL,不包括 # 及其后面部分 // 例如:http://www.example.com/path/to/page // 注意:JS-SDK 要求 URL 必须是经过encodeURIComponent编码的 // 所以需要使用 encodeURIComponent 方法进行编码 // 下面的示例假设当前页面的 URL 是 http://www.example.com/path/to/page#abc // 则需要编码的 URL 是 http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage // 注意:如果当前页面的 URL 有参数,则需要把参数也编码进去 // 例如:http://www.example.com/path/to/page?foo=bar&baz=qux // 则需要编码的 URL 是 http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage%3Ffoo%3Dbar%26baz%3Dqux // 如果不知道如何编码 URL,可以使用 encodeURIComponent 方法 // 例如:encodeURIComponent('http://www.example.com/path/to/page#abc') // 输出:http%3A%2F%2Fwww.example.com%2Fpath%2Fto%2Fpage%23abc // 可以使用浏览器的 Console 进行测试 // 注意:下面的示例中,URL 部分需要替换成实际的 URL // 示例中的 appid 和 URL 都是假的,请替换成实际的 appid 和 URL // 注意:wx.config 方法需要传入一个回调函数,用于在配置完成后执行 // 回调函数中的代码可以调用 wx.checkJsApi 方法检查当前环境是否支持 JS-SDK 的相关 API // 如果支持,则可以在回调函数中执行其他操作,例如打开微信小程序 // 如果不支持,则需要提示用户在微信客户端打开页面 jsApiList: ['checkJsApi'] // 这里需要填写微信公众号的 secret // 然后调用 wx.ready 方法,在回调函数中执行其他操作 // 例如打开微信小程序 }); ``` 最后,通过调用 wx.miniProgram.navigateTo 方法打开微信小程序: ```javascript wx.miniProgram.navigateTo({ // 这里需要填写要跳转的小程序的 appid 和页面路径 // 例如:appid: 'wx1234567890', path: 'pages/index/index' appid: 'your_mini_program_appid', path: 'your_mini_program_page_path' }); ``` 需要注意的是,以上代码仅适用于在微信浏览器中打开的 H5 页面。如果在其他浏览器中打开,或使用微信开发者工具预览,则无法跳转微信小程序
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值