uni-app 使用 plus.runtime.openURL 打开支付宝报错 code -3 此功能不支持
uni-app 使用 plus.runtime.openURL 打开支付宝报错 code -3 此功能不支持
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | big sur 11.0.1 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:big sur 11.0.1
HBuilderX类型:正式
HBuilderX版本号:3.1.6
手机系统:iOS
手机系统版本号:IOS 14
手机厂商:苹果
手机机型:iphone7
页面类型:vue
打包方式:云端
项目创建方式:HBuilderX
### 示例代码:
```javascript
plus.runtime.openURL("alipays://", err => {
uni.showToast({
title: err.message,
mask: false,
duration: 1500,
icon: 'none'
});
console.log(err);
});
操作步骤:
plus.runtime.openURL("alipays://", err => {
uni.showToast({
title: err.message,
mask: false,
duration: 1500,
icon: 'none'
});
console.log(err);
});
预期结果:
正常打开第三方应用
实际结果:
报错,无法打开第三方应用
bug描述:
plus.runtime.openURL 报错 code -3 此功能不支持
更多关于uni-app 使用 plus.runtime.openURL 打开支付宝报错 code -3 此功能不支持的实战教程也可以访问 https://www.itying.com/category-93-b0.html
注意几点
ios上支付宝的自定义协议是alipay,也就是下面这个是对的
var info = alipay://platformapi/startapp?appId=xxxxxx&page=/pages/index/index;
plus.runtime.openURL(info);
要加应用访问白名单 “urlschemewhitelist” : “alipay”
一定要重新制作自定义基座 hbuildx, 运行-> 运行到手机或模拟器 -> 制作自定义调试基座 (重点重点,我前面两点都改了,就是因为没有重新制作自定义基座,折腾了大半夜)
更多关于uni-app 使用 plus.runtime.openURL 打开支付宝报错 code -3 此功能不支持的实战教程也可以访问 https://www.itying.com/category-93-b0.html
需要添加应用白名单才可以 具体参考文档
支付宝是哪个 没有找到
回复 1***@qq.com: 你好 请问你解决了吗 支付宝的是哪个
回复 x***@163.com: 你好,解决了支付宝支付是哪个
解决了么? 找不到支付宝是哪个
回复 z***@163.com: 您好 解决了吗
请问你解决了吗,我添加了白名单也打不开
你好 解决了吗
大佬解决了吗
请问解决了吗?
ps:ios上支付宝的自定义协议是alipay Android上支付宝的自定义协议是alipays
// #ifdef APP-PLUS
uni.getSystemInfo({
success(res) {
if (res.platform == ‘android’) {
var info = alipays://platformapi/startapp?appId=xxxxx&page=/pages/index/index;
plus.runtime.openURL(info);
} else {
var info = alipay://platformapi/startapp?appId=xxxxxx&page=/pages/index/index;
plus.runtime.openURL(info);
}
},
});
// #endif
请问解决了吗?遇到同样的问题
在iOS设备上使用plus.runtime.openURL打开支付宝时遇到code -3错误,通常是由于以下原因:
-
URL Scheme限制:iOS系统对第三方应用间跳转有严格限制。
alipays://是支付宝的URL Scheme,但iOS可能因安全策略阻止跳转,尤其当设备未安装支付宝或系统版本较高时。 -
iOS 14+权限变更:从iOS 14开始,苹果加强了隐私控制,应用间跳转可能需要用户授权或受系统策略限制。检查是否在Info.plist中配置了LSApplicationQueriesSchemes(尽管uni-app云端打包可能默认处理,但需确认)。
-
支付宝未安装:如果设备未安装支付宝应用,尝试跳转会失败。建议先检查应用是否可用:
plus.runtime.isApplicationExist({pname: 'alipay'}, function(e){ if(e.exists){ plus.runtime.openURL("alipays://"); } else { uni.showToast({title: '未安装支付宝', icon: 'none'}); } });

