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也不行。

1 回复

在 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('支付宝未安装');
        }
      });
    }
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!