UniApp两应用互调授权调用

介绍

uniapp移动App两应用互调;

需求

一个APP拉起另一个APP进行授权,再回调;

实现流程

  1. A包处理:去B包申请登陆,携带参数,拉起B包;
  2. B包处理:解析参数,跳转一个授权页面,点击授权参数回调给A包;
  3. A包处理:解析B包返回参数;

需求

Demo下载地址:https://gitee.com/coyeking/uniapplaunch

流程解析


  • A包处理:去B包申请登陆,携带参数,拉起B包;
  1. 使用Boolean plus.runtime.isApplicationExist(appInf);判断包是否安装;
  2. 再使用plus.runtime.openURL,携带参数打开B包,在B包onShow()中监听A包传递来的参数;

代码如下:

// #ifdef APP-PLUS
if(plus.runtime.isApplicationExist({pname:'uni.UNI8264056',action:'myuniapptest://'})){
      plus.runtime.openURL('myuniapptest://xxx.xxx.com?account=123 ', error => {
            uni.showModal({
                  title: '失败',
                  content: JSON.stringify(error),
                  success: data => {}
            });
      });            
}else{
      console.log("B包未安装");
}
// #endif

  • B包处理:解析参数,跳转一个授权页面,点击授权参数回调给A包;
  1. App.vue中使用plus.runtime.launcher == 'scheme'判断下启动,再获取到A包参数,跳转一个授权页面;
if (plus.runtime.launcher == 'scheme') {
      if(plus.runtime.arguments != ""){
            try {  
                  var data = plus.runtime.arguments;
                  var res= data.split('?');
                  let url = `/pages/ThirdPartyAuthorization/ThirdPartyAuthorization?${res[1]}`;
                  uni.navigateTo({
                        url:url
                  })
            } catch (e) {  
                  console.log('失败');
            } 
      }
} 
  1. 登陆界面收到请求app信息后,授权,将授权后的令牌数据返回A包,同理,plus.runtime.openURL携带参数打开A包,A包在监听参数并处理令牌数据即可完成互调授权;

点赞(0)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

返回
顶部