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

14 回复

注意几点

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错误,通常是由于以下原因:

  1. URL Scheme限制:iOS系统对第三方应用间跳转有严格限制。alipays://是支付宝的URL Scheme,但iOS可能因安全策略阻止跳转,尤其当设备未安装支付宝或系统版本较高时。

  2. iOS 14+权限变更:从iOS 14开始,苹果加强了隐私控制,应用间跳转可能需要用户授权或受系统策略限制。检查是否在Info.plist中配置了LSApplicationQueriesSchemes(尽管uni-app云端打包可能默认处理,但需确认)。

  3. 支付宝未安装:如果设备未安装支付宝应用,尝试跳转会失败。建议先检查应用是否可用:

    plus.runtime.isApplicationExist({pname: 'alipay'}, function(e){
      if(e.exists){
        plus.runtime.openURL("alipays://");
      } else {
        uni.showToast({title: '未安装支付宝', icon: 'none'});
      }
    });
回到顶部