【问题标题】:Opening application from chrome browser url or redirect to google play using javascript从 chrome 浏览器 url 打开应用程序或使用 javascript 重定向到 google play
【发布时间】:2013-11-18 23:16:09
【问题描述】:

我正在使用 MVC 4 创建一个网站,我需要在 javascript 中使用 url 方案打开一个应用程序(使用移动设备浏览网站)如果未安装应用程序,我需要 javascript重定向到谷歌播放。

我已经查看并尝试了以下线程中提到的所有各种方法: How to fall back to marketplace when Android custom URL scheme not handled?

其中许多解决方案依赖于超时事件,如果未安装应用程序,它将重定向到另一个网站。我遇到的问题是,在我的 javascript 中使用了window.location = URL; 之后,我创建的任何超时似乎都消失了。如果我跳过window.location = URL; 我的超时触发就好了并重定向到谷歌播放或其他。有谁明白我为什么会遇到这个问题?

正如我所说,我使用 MVC 4,并在简单视图中执行 javascript。我尝试了许多不同的代码,打开 iframe 等,都导致了上述相同的问题。 我刚刚尝试打开应用程序,并使用 Safari 在 iPhone 设备上延迟 iTunes 重定向,它似乎有效。 android/chrome 也能达到同样的效果吗?

如果考虑到这一点,我将不胜感激。

【问题讨论】:

    标签: javascript android ios browser url-scheme


    【解决方案1】:

    Google Chrome(从 v25 开始)不再支持使用 iframe 打开应用。您可以参考Android Guidelines 上的示例来打开应用程序(如果已安装)或重定向到市场。

    【讨论】:

    【解决方案2】:

    我喜欢 Skype 解决方案:

    var element = document.createElement('iframe');
    element.id = '_the_frame_' = ((new Date()).getTime();
    document.appendChild(element);           
    var r = document.getElementById(element.id);
    var u = true;
    window.addEventListener("pagehide", function () { u = false; }, false);
    if (r !== null) {
             r.src = _customSchemaUrl;
     }
     setTimeout(function() {
     if (u) {
           window.location = _downloadIosUrl;
        }
    }, 2000);
    

    【讨论】:

    • 第 2 行的错误(无效的左手赋值)在第 3 行,document.body.appendChild 脚本本身也没有完成它的工作
    猜你喜欢
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多