我为我的iOS应用创建了自定义应用URL。 URL格式与此类似:
myappname://texttobeparsed
当我在Safari中粘贴URL时,此工作正常,我的应用程序打开并正确处理URL。问题是其他应用程序(如iMessage或Notes)无法将其识别为URL。
为什么此网址方案未被识别为网址?它可能与我在 info.plist 文件中设置的方式有关吗?
或者,URL是否需要采用不同的格式才能识别?
我知道可以让系统将其识别为网络浏览器以外的应用中的URL,因为我之前已经看过其他应用(例如iTunes:itms://itunes.com/apps/appname
或Twitter:{{1}或Facebook:twitter://
)。
答案 0 :(得分:4)
你无能为力。如果链接不明确(例如在HTML电子邮件中),这些应用程序可以识别内置的一组标准URL方案。 itms://
是Apple自己的方案之一(适用于iTunes Store),因此除了标准mailto://
,http://
,tel://
之外,它还支持它。计划。
编辑:我猜想用于确定文本视图中有效网址的内容的信息会以某种方式缓存。与我最初猜测的相反,似乎特定于应用程序的URL 执行在Notes等中工作。我已经使用tweetbot://
(例如我已安装)和{{}进行了测试1}}(我没有安装)验证它不只是检查twitter://
之类的模式,而是实际使用有关已安装应用程序的信息。
我建议您尝试重启设备。如果这是一些缓存的问题,这可能会有所帮助,如果您的URL方案已在Safari中运行,我认为您还可以做很多事情。
更新:我已经安装了正式的Twitter应用来测试这个,*://
方案在Notes中没有被立即识别,但是在杀死并重新启动Notes应用后,它工作正常
更新2:我已经使用twitter://
作为自定义网址方案完成了一个最小测试应用。再次,与Twitter应用程序一样,它在重新启动Notes应用程序后起作用,因此它似乎与应用程序的受欢迎程度无关或是否已提交。
答案 1 :(得分:1)
我无法回答为什么它不起作用(除了猜测链接解释器是硬编码的,只能识别某些URL方案),但我可以说,解决这个问题的典型方法是链接到网页,并将网页重定向到您的自定义方案。
稍微不那么优雅,因为用户会在转发到您的应用之前看到Safari短暂打开,但它也更强大,因为如果没有安装,网页可以提供指向应用程序商店的链接来安装应用程序在用户的手机上。