gpt4 book ai didi

ios - 处理 "mobilephone"URL 方案在真实设备上不起作用

转载 作者:行者123 更新时间:2023-11-28 11:30:42 25 4
gpt4 key购买 nike

我制作了一个非常简单的应用程序来打开 mobilephone URL(“Tester”):

    let url = URL(string: "mobilephone:Test?index=1")

UIApplication.shared.open(url!) { (result) in
if result {
print("success!")
}
else {
print(result)
}
}

然后我添加了另一个应用程序(“处理程序”)和该 URL 的处理程序(在 AppDelegate 中):

func application(_ application: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool {


// Determine who sent the URL.
let sendingAppID = options[.sourceApplication]
let source = "\(sendingAppID ?? "Unknown")"

let alert = UIAlertController(title: source, message: url.absoluteString, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
self.window?.rootViewController?.present(alert, animated: true, completion: nil)

return true
}

当然,我在 Project → Info → URL Types 中注册了这个方案,其中 mobilephone 作为方案,我的应用程序标识符作为标识符。

这在模拟器上效果很好。当我在 iPhone 8 模拟器上运行这两个应用程序时,我可以打开测试器,尝试打开 URL,它会切换到处理程序应用程序并显示消息框。到目前为止一切顺利。

但后来我将这两个应用程序部署到运行 iOS 12.3.1 的真实 iPhone 8 手机上,但未处理 URL。测试器应用从 UIApplication.shared.open 报告 false 并且处理程序应用未启动。我想我缺少一些注册部分但无法弄清楚。有什么帮助吗?

编辑:当我将方案更改为某个随机名称时,它似乎工作正常...... mobilephone 方案是否以某种方式保留?不过,我没有在保留方案列表中看到它。

最佳答案

您不可能注册这样的 URL。它由“电话”应用程序注册。

您可以通过转到 Safari 并键入:mobilephone://test 来判断。它会提示您打开“电话”应用程序,然后说:“Safari 无法打开该 URL,因为它是无效"..

编辑:从 iOS 10+ 开始,该 URL 不再有效。以下是被阻止的 URL 列表(以及开放设置更新):http://appcofe.blogspot.com/2016/10/apple-blocked-41-app-url-scheme-on-ios_18.html

https://imgur.com/a/tpTcqOs

enter image description here enter image description here enter image description here

在 iPhone X (NQAJ2LL/A) - iOS 12.2 (16E227) 上测试

关于ios - 处理 "mobilephone"URL 方案在真实设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com