uni-app 自定义基座调用在IOS上 plus.share.getServices 直接闪退,安卓正常

uni-app 自定义基座调用在IOS上 plus.share.getServices 直接闪退,安卓正常

项目信息 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 W10
HBuilderX类型 正式
HBuilderX版本 3.2.3
手机系统 iOS
手机系统版本 IOS 14
手机厂商 苹果
手机机型 6SP
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

示例代码:

plus.share.getServices(function(shareList){
console.log("微信支付2")
var shareWx = null;
for(var tempIndex = 0;tempIndex < shareList.length;tempIndex++){
if(shareList[tempIndex].id == 'weixin'){
shareWx = shareList[tempIndex];
}
}
if(shareWx){
console.log("微信支付3")
shareWx.launchMiniProgram({
id:'gh_0ddca31248d1',
path:"pages/my/my"
})
}else{
uni.showToast({icon: 'none', title: "未安装微信,无法打开对应小程序"})
}
}, function(e){
console.log("ERROR")
uni.showToast({icon: 'none', title: "获取分享服务列表失败:"+JSON.stringify(e)})
})

操作步骤:

必现

预期结果:

进入微信小程序

实际结果:

闪退

bug描述:

plus.share.getServices(function(shareList){  
console.log("微信支付2")   
var shareWx = null;  
for(var tempIndex = 0;tempIndex < shareList.length;tempIndex++){  
if(shareList[tempIndex].id == 'weixin'){  
shareWx = shareList[tempIndex];  
}  
}  
if(shareWx){  
console.log("微信支付3")  
shareWx.launchMiniProgram({  
id:'gh_0ddca31248d1',  
path:"pages/my/my"  
})  
}else{  
uni.showToast({icon: 'none', title: "未安装微信,无法打开对应小程序"})  
}  
}, function(e){  
console.log("ERROR")  
uni.showToast({icon: 'none', title: "获取分享服务列表失败:"+JSON.stringify(e)})  
})

uniapp 端 IOS自定义基座调用以上代码进入微信小程序直接闪退


更多关于uni-app 自定义基座调用在IOS上 plus.share.getServices 直接闪退,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

我们也是,
最新的3.2.3 HbuilderX,调用uni.share分享,以及 launchMiniProgram打开小程序都会崩溃闪退。

更多关于uni-app 自定义基座调用在IOS上 plus.share.getServices 直接闪退,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题的主要原因是需要配置微信、QQ、微博的各个平台的通用链接后才能正常

问题排查中

这个问题的主要原因是需要配置微信、QQ、微博的各个平台的通用链接后才能正常,官方说后面会把提示加上,非常感谢官方的指导才能马上解决问题!

我配置了通用链接的,也是会闪退

我的ios也闪退,3.2.2

这是一个典型的iOS平台权限配置问题。在iOS上调用plus.share.getServices()需要正确配置LSApplicationQueriesSchemes白名单,否则会导致应用闪退。

解决方案:

  1. 配置manifest.json: 在manifest.jsonapp-plus->distribute->ios节点下添加以下配置:
{
  "app-plus": {
    "distribute": {
      "ios": {
        "urlschemewhitelist": [
          "weixin",
          "weixinULAPI",
          "wechat"
        ],
        "LSApplicationQueriesSchemes": [
          "weixin",
          "weixinULAPI",
          "wechat"
        ]
      }
    }
  }
}
  1. 检查自定义基座配置

    • 修改manifest配置后,必须重新制作自定义基座
    • 确保云端打包时勾选了"使用自定义基座运行"
    • 删除旧的自定义基座,重新制作并安装到iOS设备
  2. 代码优化建议: 在调用前添加平台判断和异常捕获:

// 添加平台判断
if (uni.getSystemInfoSync().platform === 'ios') {
  // iOS平台需要额外处理
}

// 添加异常捕获
try {
  plus.share.getServices(function(shareList){
    // 原有逻辑
  }, function(e){
    console.error("获取分享服务失败:", e);
  });
} catch (error) {
  console.error("调用分享服务异常:", error);
}
回到顶部