uni-app iOS18拨打电话和更新版本打开商城没反应

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app iOS18拨打电话和更新版本打开商城没反应

iOS18

拨打电话:uni.makePhoneCall({phoneNumber: pPN});

升级跳转商店:plus.runtime.openURL(encodeURI(this.newVerInfo.uploadAddress));

报错事:BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(:) needs to migrate to the non-deprecated UIApplication.open(*:options:completionHandler:). Force returning false (NO).

相关链接:


9 回复

HBuilderX 4.29.2024093009 已修复。


能问一下为什么要删除百度定位啊?

HBuilderX 4.29.2024093009 更新完后真机还是不生效,拨打电话还是不能用。我们用的是离线工程方式,不是用的云打包。请问我们是不是需要更新离线工程

回复 h***@163.com: 同问,要怎么解决呢

是的 麻烦官方快点给解决下

此问题已确认,正在解决中,请关注新版本发布日志。

HBuilderX 4.29.2024093009 更新完后真机还是不生效,拨打电话还是不能用。我们用的是离线工程方式,不是用的云打包。请问我们是不是需要更新离线工程

为什么要在新版里面把百度定位删除了?

在uni-app中处理iOS 18拨打电话和更新版本打开商城无反应的问题,通常涉及到权限处理、URL Scheme配置以及代码实现。以下是一些可能的解决方案及代码示例:

1. 拨打电话无反应

iOS 18对于拨打电话等敏感操作有严格的权限控制。首先,确保你的应用已经请求并获得了电话权限(虽然iOS通常不直接为应用提供拨打电话的权限,但你可以通过URL Scheme尝试)。

代码示例

// 在需要拨打电话的地方
const phoneNumber = "1234567890";
uni.makePhoneCall({
  phoneNumber: phoneNumber,
  success: function () {
    console.log('拨打电话成功');
  },
  fail: function (err) {
    console.error('拨打电话失败', err);
    uni.showToast({
      title: '拨打电话失败,请检查权限',
      icon: 'none'
    });
  }
});

注意: 如果在iOS 18上此方法无效,可能需要引导用户手动拨号,或者通过其他方式(如短信链接)提示用户拨打电话。

2. 更新版本打开商城无反应

对于打开商城应用(如App Store),你需要确保URL Scheme正确,并且设备能够解析该链接。

代码示例

// 更新版本并打开App Store
const appId = '你的AppID'; // 替换为你的App在App Store的ID
const appStoreUrl = `https://apps.apple.com/app/id${appId}?mt=8`;

uni.navigateToMiniProgram({
  appId: 'wxa2c49f4de042xxxx', // 如果希望跳转到小程序进行提示或引导
  path: `/pages/update/update?url=${encodeURIComponent(appStoreUrl)}`,
  success: function () {
    console.log('跳转到小程序成功');
  },
  fail: function (err) {
    console.error('跳转到小程序失败', err);
    // 如果无法跳转到小程序,直接打开App Store链接
    uni.setClipboardData({
      data: appStoreUrl,
      success: function () {
        uni.showModal({
          title: '提示',
          content: '复制了App Store链接,请在浏览器中打开',
          showCancel: false,
          success: function (res) {
            if (res.confirm) {
              // 可以考虑引导用户到Safari打开链接
              uni.showToast({
                title: '已复制链接',
                icon: 'success'
              });
            }
          }
        });
      }
    });
  }
});

注意: 上面的代码示例中,我提供了一个通过小程序进行跳转的备选方案,因为直接在uni-app中打开App Store链接可能会受到iOS的限制。如果小程序方案不可行,你可以考虑使用上述的剪贴板复制方案。

总之,处理这些问题时,需要关注iOS的最新权限和URL Scheme要求,确保代码实现与这些要求相匹配。

回到顶部