如果安装了应用程序,则重定向到应用程序,否则重定向到App Store。

16 浏览
0 Comments

如果安装了应用程序,则重定向到应用程序,否则重定向到App Store。

我知道在iOS中可以通过注册自定义方案(例如so://)直接链接到应用程序,也可以通过iTunes链接到App Store。\n在许多情况下,理想的流程是提供一个链接,如果应用程序已安装,则重定向到应用程序,如果未安装,则重定向到商店。是否可能实现这一点,如果是的话,如何实现?\n为了清晰起见,场景是我在iPhone上从电子邮件中打开一个链接(http),邀请我加入一个应用程序中的一个组。如果用户在该设备上安装了该应用程序,它应该会打开,否则http链接应重定向到iTunes。

0
0 Comments

如果您在电子邮件中链接到一个包含使用您的应用程序的自定义方案的iframe的网页,iOS将自动重定向到该应用程序的位置。如果应用程序未安装,则不会发生任何操作。这使您可以在已安装应用程序中进行深层链接,或者如果未安装,则重定向到App Store。

例如,如果您已安装了Twitter应用程序,并导航到包含以下标记的网页,则会立即重定向到该应用程序。如果您未安装Twitter应用程序,则会看到文本“Twitter应用程序未安装”。



    
    iOS Automatic Deep Linking
    
    
        
        

The Twitter App is not installed

下面是一个更详细的示例,如果应用程序未安装,则重定向到App Store:



    
    iOS Automatic Deep Linking
    
    
    
    
    
    
    

Website content.

这是我们在Syfy.com上的做法。访问syfy.com/live,如果您已安装该应用程序,您将自动进入该应用程序。

这是问题的正确答案。我没有在页面本身中检测iOS,而是在get请求中检查用户代理标头,并提供重定向页面或要求用户在iOS设备上打开链接的页面。出于好奇,您是怎么知道iframe会以这种方式工作的?我在iframe的HTML文档中找不到相关信息。

谢谢!我不知道它会这样工作,我只是不断尝试不同的方法,直到它成功为止! 🙂

那真是太好了!不幸的是,这在iOS 8以后似乎不再起作用。您是否发现在iOS 8及更高版本中仍然有效?似乎与苹果阻止自动重定向到App Store有关。

因为直接从SVN存储库下载代码而被点踩。存储库所有者可以随时向存储库推送加密货币挖矿器。

0
0 Comments

问题出现的原因是无法直接检查应用是否安装,但是可以通过一个巧妙的解决方法来实现。具体思路如下:

1. 第一次打开应用时,从应用内部打开手机Safari浏览器,跳转到预定的服务器URL。

2. 在该URL上设置一个cookie,比如appInstalled,用于标记用户的Safari浏览器。

3. 然后通过应用注册的scheme将用户重新跳转回应用(类似Facebook的SSO)。

4. 所有的邮箱链接指向网站,在网站上检查浏览器是否为移动版Safari,并且检查是否存在appInstalled的cookie。

5. 如果浏览器不是移动版Safari或者不存在appInstalled的cookie,则重定向到App Store或者停留在网页上。

6. 如果满足第4步的条件,将用户重定向到应用,使用注册的scheme。

7. 如果应用被用户删除,自定义URL scheme无法打开应用,就会有一个备用的重定向到App Store。

最后两个步骤在这个Stack Overflow帖子中有详细解释。

需要注意的是,在第一步中,尝试使用应用内部的WebView替代Safari浏览器是行不通的,因为它们不共享同一个cookie存储。

不幸的是,这需要更新iOS客户端才能实现。

当用户从设置中清除网站数据时,这种方法将无法正常工作。

没有人说这是一个完美的解决方案,但在当时这是最好的选择。

现在仍然准确吗?有人知道吗?我看到像BOA和Medium这样的应用程序甚至在不尝试打开Safari的情况下就打开了!

0
0 Comments

原因:问题的出现是因为在iOS 12及以上版本中,当应用和链接同时存在时,系统会同时打开应用和链接,而不是只打开应用或只打开链接。

解决方法:目前还没有找到解决这个问题的方法。

0