ios url 方案适用于模拟器 safari,但不适用于 iPhone safari

问题描述 投票:0回答:1

我在我的 iOS 应用程序上启用了 url 方案和通用链接。

在 iOS 上,使用模拟器手机,我可以在 safari 地址栏中输入

myapp://
,它将弹出我的应用程序。但在实际的 iPhone 上,在 safari 地址中输入
myapp://
会显示以下错误:

   Safari cannot open the page because the address is invalid

我在这里缺少什么?为什么在模拟器上可以用,但在真机上却不行?我该如何解决这个问题?我确实知道 iOS 已经转向通用链接 - 而且这正在发挥作用。但只是想弄清楚为什么 urlscheme 适用于其中一个而不适用于另一个。需要注意的一件事是模拟器运行的是 iOS 16.2,而 iPhone 运行的是 iOS 15.3.1(它是 iPhone 7,无法更新到 iOS 16)。人们可能会认为旧版 iOS 会支持 urlscheme,而新版则不会……但这里恰恰相反。

在 Android 上,在 chrome 地址栏中输入

myapp://
可以在物理设备和模拟器上使用。

更新:

这是我的

entitlements-release.plist
- 从 cordova 项目文件夹中提取:
projectMyapp/platforms/ios/myApp
目录。在 Xcode 中,我确实有权利,但这两个文件几乎是空的。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>production</string>
</dict>
</plist>

entitlements-debut.plist
几乎相同,只是字符串显示为
development

ios cordova safari url-scheme
1个回答
0
投票

我找到了问题的根源。事实证明,iPhone 上的 Safari 已设置为

private
模式...当设置回
start page
时,浏览器会识别我的自定义 url 方案。

在尝试解决原始问题时,我遇到了这个线程:iOS Safari 在用户取消后无法识别 url 方案

在让 url 方案再次工作(在 iPhone 上)后,我测试了另一个线程中描述的场景,并且能够复制相同的问题。我现在正在实现一些缓存破坏程序代码,以防止最终用户发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.