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、微博的各个平台的通用链接后才能正常,官方说后面会把提示加上,非常感谢官方的指导才能马上解决问题!
我配置了通用链接的,也是会闪退
我的ios也闪退,3.2.2
这是一个典型的iOS平台权限配置问题。在iOS上调用plus.share.getServices()需要正确配置LSApplicationQueriesSchemes白名单,否则会导致应用闪退。
解决方案:
- 配置manifest.json:
在
manifest.json的app-plus->distribute->ios节点下添加以下配置:
{
"app-plus": {
"distribute": {
"ios": {
"urlschemewhitelist": [
"weixin",
"weixinULAPI",
"wechat"
],
"LSApplicationQueriesSchemes": [
"weixin",
"weixinULAPI",
"wechat"
]
}
}
}
}
-
检查自定义基座配置:
- 修改manifest配置后,必须重新制作自定义基座
- 确保云端打包时勾选了"使用自定义基座运行"
- 删除旧的自定义基座,重新制作并安装到iOS设备
-
代码优化建议: 在调用前添加平台判断和异常捕获:
// 添加平台判断
if (uni.getSystemInfoSync().platform === 'ios') {
// iOS平台需要额外处理
}
// 添加异常捕获
try {
plus.share.getServices(function(shareList){
// 原有逻辑
}, function(e){
console.error("获取分享服务失败:", e);
});
} catch (error) {
console.error("调用分享服务异常:", error);
}


