iOS 9中Safari无法打开iOS应用程序

9

我有一个发送到电子邮件的URL,如果用户点击该链接,则会打开应用程序(如果已安装),在iOS 8中正常工作,但自从我切换到iOS 9后,重定向到应用程序不再起作用。我试图添加“LSApplicationQueriesSchemes”数组,并在其中添加我的URL方案,但也没有起作用。那么,它错过了什么?


你能展示一下应用程序.plist文件中关键字为<key>CFBundleURLTypes</key>的URL和XML吗? 右键点击*.plist并选择“打开方式”->“源代码”。 - Iurie Manea
@IurieManea 这个可以在应用程序之间使用,我问的是从Safari到应用程序,顺便看看下面我的答案。 - Islam.Ibrahim
3个回答

4

2
我看到他在谈论canOpenURL和openURL这两个方法,而我在谈论通过链接在Safari中打开并将我重定向到我的应用程序,当然这个链接并没有使用其中的任何一种方法。 - Islam.Ibrahim

2
我在 JavaScript 代码中进行了修复,使其可以重定向到打开我的应用程序的 URL。
我创建了一个包含重定向 URL 的 URL src 对象的 iframe。我删除了该 iframe,并将其替换为 window.location = "url" 这行代码,这就是所有需要的修改,现在一切都正常工作了,Safari 现在再次重定向到我的应用程序,但这次会显示一个消息,以确保用户想要转到该应用程序。
因此,如果有人再次遇到重定向问题,请检查 JavaScript 重定向代码并删除 iframe,然后使用 window.location 进行替换。

@Desco,请查看这个解决方案。 - Islam.Ibrahim
如果访问您的移动网站的用户没有安装应用程序怎么办?Safari会弹出一个错误框。这不好。 - tommybond
1
@tommy.bonderenka 是的,在那种情况下不太好,所以你应该添加一个视图,其中有一个按钮,以防万一网站从移动设备打开时会显示“打开应用”或“继续使用应用程序”。然后通过这种方式将用户重定向到应用程序,但我的情况不同,因为我没有为用户提供浏览的网站。因此,这种方式适合我。 - Islam.Ibrahim
我一直在使用window.location。它在iOS 9.0以下的版本中运行良好,但在9.0上显示错误:无效地址。 - Swati
@Swati请确保您iOS应用程序中info.plist文件中的url types属性中的url scheme与地址中的url重定向匹配。 - Islam.Ibrahim

0

这个问题正在苹果的支持论坛上讨论:https://discussions.apple.com/thread/7221842

我的公司已经向苹果支持提交了一个关于这个问题的工单。

不幸的是,目前还没有解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接