如果通过 Safari 中的网页安装,如何打开应用程序?

Posted

技术标签:

【中文标题】如果通过 Safari 中的网页安装,如何打开应用程序?【英文标题】:How to open an app if installed through a webpage in Safari? 【发布时间】:2013-07-12 15:15:00 【问题描述】:

我们有一个应用程序,我们称之为:xyz_app,我有一个xyz_app:// 形式的自定义 URL 方案。

我们正在向用户发送电子邮件。

当他点击链接时,他应该去应用程序,如果应用程序没有安装,我们的移动网站。

那么从电子邮件中的链接,我如何确保如果未安装应用程序,该链接应该将用户发送到移动网站?

【问题讨论】:

【参考方案1】:

仅当应用程序安装在 iDevice 上时,URL 方案才能直接工作。如果没有安装会报错。

1) 要实现此功能,您必须将用户重定向到一个网页,该网页将通过您的电子邮件链接检测是否安装了应用程序。像这样 www.yourwebsite/detectapp

2) 您的detectapp 页面将有一个javascript-

var appstoreFail = "www.your_redirect_website.com";

//Check is device is ios
var iOS = /(iPad|iPhone|iPod)/.test(navigator.userAgent);
var appUrlScheme = "xyz_app://";

if (iOS) 
    // If the app is not installed the script will wait for 2sec and redirect to web.
    var loadedAt = +new Date;
    setTimeout(function() 
        if (+new Date - loadedAt < 2000)
            window.location = appstoreFail;
     ,25);
    // Try launching the app using URL schemes
    window.open(appUrlScheme, "_self");
 else 
    // Launch the website
    window.location = appstoreFail;

【讨论】:

好的。谢谢。我会试试这个。 setTimout没有直接设置为2秒有具体原因吗?

以上是关于如果通过 Safari 中的网页安装,如何打开应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

通过 iOS 9 登录 FB 时打开 Safari 网页视图

抑制Safari无法打开页面,因为地址无效?自定义应用启动

如何从 PhoneGap 3.1 应用程序打开外部链接到 Safari/Chrome 浏览器?

苹果手机怎么阻止弹出网页?

如何阻止safari从网页直接跳转至app

如何查找网页的源代码?