当前位置:   article > 正文

uniapp开发的App(安卓)端跳转uniapp微信小程序_uniapp 安卓app 调起小程序

uniapp 安卓app 调起小程序

本文总结两种跳转方法:!!!适合自己的才是最好的

1、根据微信开放文档提供的方法获取小程序的URL (两种)

        !  小程序的URL Scheme 

weixin://dl/business/?t= *TICKET*

        !! 小程序的URL Link 

https://wxaurl.cn/*TICKET* 或 https://wxmpurl.cn/*TICKET*

 

代码实现: !!!切记本案例是前端调用,应该让后端封装调用(为了安全考虑)

  1. <view class="button">
  2. <button type="primary" @click="getUniappURL">跳转小程序</button>
  3. </view>
  1. methods: {
  2. getUniappURL() {
  3. let params = {
  4. // path:要跳转到的小程序的目标页面纯路径(不要拼接参数)
  5. // 注意:如果该链接要打开的版本是正式版,则这个path一定要已经发布到了正式版,不然无法访问到该页面则链接无法生成成功
  6. path: '/pages/index/insex',
  7. query: 'a=1&b=2', // 短链的入参
  8. env_version: "release", // 正式版
  9. expire_type: 1,
  10. expire_interval: 30,
  11. }
  12. this.getAppLink(params)
  13. },
  14. getAppLink(params) {
  15. // AppID(小程序ID)
  16. const appid = 'wx******cf'
  17. // AppSecret(小程序密钥)
  18. const secret = 'afe3d06*******975dcbe4'
  19. let tokenURL = ''
  20. let urllink = ''
  21. // #ifdef APP
  22. tokenURL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`
  23. // #endif
  24. // 先发起请求获取凭证2小时内有效
  25. uni.request({
  26. url: tokenURL,
  27. method: 'GET',
  28. success(res) {
  29. // #ifdef APP
  30. urllink = `https://api.weixin.qq.com/wxa/generate_urllink?access_token=${res.data.access_token}`//获取 URL Link
  31. //urllink = `https://api.weixin.qq.com/wxa/generatescheme?access_token=${res.data.access_token}`//获取 URL Scheme
  32. // #endif
  33. // 再发起请求获取url
  34. uni.request({
  35. url: urllink,
  36. method: 'POST',
  37. data: {
  38. ...params
  39. },
  40. success(result) {
  41. console.log('生成网址:', result.data.url_link);
  42. // #ifdef APP
  43. //通过uniapp内置组件web-view跳转该链接
  44. uni.navigateTo({
  45. url: `/pages/webView/webView?url=${result.data.url_link}`,
  46. });
  47. // #endif
  48. },
  49. fail(err) {
  50. console.log(err);
  51. }
  52. })
  53. },
  54. fail(err) {
  55. console.log(err);
  56. }
  57. })
  58. },
  59. }

以上可以拿到小程序的两种URL 链接

vebView页面代码:

  1. <template>
  2. <view>
  3. <web-view :src="url"></web-view>
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. url: ''
  11. };
  12. },
  13. onLoad(options) {
  14. this.url = options.url;
  15. }
  16. };
  17. </script>

2、通过App的微信分享跳转微信小程序

!!!打包App时需要在manifest.json中APP模块配置Share中微信分享保持开启

!!!打包App时需要在manifest.json中APP模块配置Share中微信分享保持开启

!!!打包App时需要在manifest.json中APP模块配置Share中微信分享保持开启

代码实现:

!!! $appJumpMiniPro方法我放在了vue原型上
!!!需要小程序的原始ID:以gh_开头的id
  1. <view class="button">
  2. <button type="primary" size="mini" @click="$appJumpMiniPro('/pages/index/index?basURL=report')">跳转</button>
  3. </view>

$appJumpMiniPro(url)方法: !!!记得在main.js上挂载 否则无效~

  1. Vue.prototype.$appJumpMiniPro = function(url) {
  2. // 获取分享服务列表
  3. plus.share.getServices(
  4. res => {
  5. let sweixin = '';
  6. for (var i = 0; i < res.length; i++) {
  7. let t = res[i];
  8. if (t.id == 'weixin') {
  9. sweixin = t;
  10. }
  11. }
  12. if (sweixin) {
  13. sweixin.launchMiniProgram({
  14. id: 'gh_****ab42', // 要跳转小程序的原始ID
  15. path: url, // 可带参数
  16. type: 2 // 微信小程序版本类型可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
  17. },
  18. // 目标小程序点击返回App后执行的回调,在此接收微信小程序传递的参数
  19. res2 => {
  20. console.log(typeof res2, res2)
  21. // res2是微信小程序传递回来的参数 类型为string 需转化为js对象使用
  22. let result = JSON.parse(res2)
  23. console.log(result)
  24. // 拿到参数后执行你需要的逻辑
  25. },
  26. err2 => {
  27. console.log(err2)
  28. }
  29. );
  30. } else {
  31. // 没有获取到微信分享服务
  32. uni.showToast({
  33. icon: 'none',
  34. title: '当前环境不支持微信操作!'
  35. })
  36. }
  37. },
  38. err => {
  39. // 获取分享服务列表失败
  40. console.log(err)
  41. }
  42. )
  43. }

到此结束~以上是App跳转微信小程序的两种方法,适合自己的才是最好的

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/578525
推荐阅读
相关标签
  

闽ICP备14008679号