在 javascript/Angular JS 中安装并打开 Android /ios 原生应用程序

Posted

技术标签:

【中文标题】在 javascript/Angular JS 中安装并打开 Android /ios 原生应用程序【英文标题】:Install and open Android /ios native application in javascript/Angular JS 【发布时间】:2013-08-10 12:22:23 【问题描述】:

我们的移动 Web 应用程序中有“扫描”按钮。移动 Web 应用程序完全基于 html5 和 Angular JS 和 javascript/ajax。我们需要基于用户代理 android/Iphone 从 Google Play/iTunes 安装一些第三方原生扫描应用程序,如果应用程序已经安装,我们需要在用户单击扫描按钮时打开它。请在 javascript/Angular JS 中提出任何解决方案。我尝试了以下解决方案

setTimeout(function() 

      window.location = 'http://my-installation.url'; //to download
    , 1000);

    window.location = 'myapp://custom-scheme-url'; //to open

但是这种方法充满了问题。很多时候它会重定向到 googleplay/itunes,尽管应用程序已安装,有时当应用程序未安装时,它会打开myapp://custom-scheme-url,然后立即给出错误,如“此网页不可用错误”。我们也尝试了不同的超时值,但没有帮助。

请建议除了设置超时检查应用程序是否已安装之外,是否还有其他方法。

【问题讨论】:

How to open a native ios app from a web app 的可能重复项 【参考方案1】:

使用iframe 可以解决部分问题。详情请见this ticket。

具体来说:

如果您需要打开已安装的 iOS 应用程序,并且还 想要保留页面的功能,location.href = 'myapp://?params=...';将无济于事,因为如果 myapp:// 未注册, 重定向将用户带到无法到达的目的地。

解决方案:

var frame = document.createElement('iframe');
frame.src = 'myapp://?params=...';
frame.style.display = 'none';
document.body.appendChild(frame);

【讨论】:

以上是关于在 javascript/Angular JS 中安装并打开 Android /ios 原生应用程序的主要内容,如果未能解决你的问题,请参考以下文章

javascript Angular.js

javascript angular2-knob.umd.js

javascript Angular JS(1.x)ES6组件示例

JavaScript---Angular 和JQuery

JavaScript/Angular2 LocalStorage 可以得到任何东西

从列表中接收模型并显示属性[javascript] [angular 7]