uni-app 苹果ios 17版本无法唤起支付宝小程序
uni-app 苹果ios 17版本无法唤起支付宝小程序
项目信息 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | WIN10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.99 |
手机系统 | iOS |
手机系统版本号 | iOS 17 |
手机厂商 | 苹果 |
手机机型 | iPhone 14 Pro Max |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
var appId="2021003173637954";
uni.getSystemInfo({
success(res) {
if (res.platform == 'android') {
var orderInfo =
`alipays://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
} else {
console.log('alipay')
var orderInfo =
`alipay://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
}
}
})
操作步骤:
var appId="2021003173637954";
uni.getSystemInfo({
success(res) {
if (res.platform == 'android') {
var orderInfo =
`alipays://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
} else {
console.log('alipay')
var orderInfo =
`alipay://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
}
}
})
预期结果:
var appId="2021003173637954";
uni.getSystemInfo({
success(res) {
if (res.platform == 'android') {
var orderInfo =
`alipays://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
} else {
console.log('alipay')
var orderInfo =
`alipay://platformapi/startapp?appId=${appId}&page=${link}`
//data; //从服务器获取的订单
plus.runtime.openURL(orderInfo);
}
}
})
实际结果:
能够唤起小程序页面。现在是苹果手机点击没有反应,也没有报错
bug描述:
uniapp 苹果手机上面的型号,无法唤起这个链接:alipays://platformapi/startapp?appId=2021003173637954&page=pagesCommission/pay/index?oid=FK20240115120121588647006&paytype=1&type=13 我也看了网上把alipays换成alipay也不行。
在 uni-app 中,如果遇到在 iOS 17 版本上无法唤起支付宝小程序的问题,可能是由于以下原因导致的。以下是一些可能的解决方案和排查步骤:
1. 检查 uni-app 版本
确保你使用的 uni-app 版本是最新的,旧版本可能存在兼容性问题。可以通过以下命令更新 uni-app:
npm install -g @dcloudio/uni-cli
2. 检查支付宝 SDK 版本
确保你使用的支付宝 SDK 是最新的,旧版本可能不支持 iOS 17。可以在 manifest.json
中检查并更新支付宝相关配置。
3. 检查 URL Scheme 配置
唤起支付宝小程序通常需要使用 URL Scheme。确保在 iOS 17 上正确配置了支付宝的 URL Scheme。可以在 manifest.json
中检查 app-plus
配置:
"app-plus": {
"distribute": {
"ios": {
"urlschemewhitelist": ["alipay", "alipays"]
}
}
}
4. 检查唤起代码
确保唤起支付宝小程序的代码正确。以下是一个示例:
uni.navigateToMiniProgram({
appId: '支付宝小程序的appId',
path: '页面路径',
success(res) {
console.log('唤起成功', res);
},
fail(err) {
console.log('唤起失败', err);
}
});
5. 检查 iOS 17 的权限问题
iOS 17 可能对 URL Scheme 的调用有更严格的限制。确保在调用支付宝小程序时,应用已经获得了必要的权限。可以在 Info.plist
中添加以下配置:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>alipay</string>
<string>alipays</string>
</array>
6. 检查支付宝客户端是否安装
确保用户的设备上已经安装了支付宝客户端。可以通过以下代码检测:
uni.getSystemInfo({
success(res) {
if (res.platform === 'ios') {
uni.checkAppInstalled({
appId: '支付宝的appId',
success(res) {
console.log('支付宝已安装');
},
fail(err) {
console.log('支付宝未安装');
}
});
}
}
});