设备:iPhone 5 / iOS 9.3
我有一个iOS应用程序,我需要从网站启动。我能够通过自定义URL方案来实现。
当我单击网站上的“打开应用程序”按钮时,会出现一个警告对话框,显示“Safari想要打开MyApp”,并显示“确定”和“取消”按钮。
单击确定:一切都很好。该应用程序从网站上完美启动。
单击取消:第一次,它只是解除阻止应用程序启动,这是正确的。
当我再次从网站点击“打开应用程序”按钮时,我希望同样的“Safari想要启动MyApp”警告对话框再次出现,这种情况不会发生。
相反,它会显示一个对话框,显示“无法打开页面 - Safari无法打开页面,因为地址无效”,并带有“确定”按钮。
我的假设是,每次当你点击网站上的那个链接(可以通过自定义网址方案启动应用程序)时,我都应该提示“safari想要打开MyApp”警告对话框。
我在这里错过了什么?提前感谢您的帮助。
这是一种已知的行为。
如果您点击facebook://feeds
并打开它,那么Safari将不会将该Safari选项卡的facebook
方案列入黑名单。您将被允许在该选项卡上打开facebook://profile
,facebook://feeds
,facebook://settings
等
但是,如果您单击“取消”,那么您将无法再为该选项卡使用该方案的任何网址,即您将无法打开facebook://profile
,因为它已被列入该选项卡的黑名单。
打开新标签页然后重试。该标签不再列入黑名单。
如果Apple向用户提供以下选项,那会好得多:
拒绝一次。总是拒绝。永远允许
但我猜他们是否这样做,那么他们必须为用户提供替代方法来定制每个主机/方案的行为。显然苹果不想允许这样做。
在我的代码中使用Google跟踪代码管理器时遇到了同样的问题。尝试使用javascript事件打开应用程序,而不是使用标记a的href。
我得到了一个类似的错误,通过在限制中设置“安装应用程序”(设置 - >常规 - >限制)来修复它,启用切换按钮。它默认启用但我过去通过禁用切换按钮限制它。
希望这有助于任何人。
我刚刚在iPhone上解决了同样的问题。转到设置>常规>限制> Safari。确保“允许”或打开(滑动到绿色)。退出设置并重试。它应该工作。