使用Web回退打开本机应用程序

时间:2012-09-25 13:20:58

标签: javascript native

我们正在尝试在用户访问某个网址时启动我们的原生应用。

我们的应用已注册了自定义网址架构,因此部分已完成 问题是实施后备。

我想要的是这样的:

try {
  # Redirect to the app
} catch(e) {
  # Redirect to the web version
}

由于window.location没有引发异常,这显然不起作用。

我试过这样做:

window.location = 'some-schema://some/url';
setTimeout(function() { window.location = '/some/url'; }, 100);

当用户访问网址时,它会打开应用。但是,当用户返回浏览器时,将执行回退代码,并且用户将看到Web版本。

这只是一个缺点。下次用户访问URL时,应用程序无法打开(仅在Android上测试),原因不明。由于我们不使用301重定向,因此我不明白为什么它会缓存重定向。

我几乎放弃了,并且很可能会实施一个视图,说“如果您有应用程序,请单击此处,否则请单击此处”。

在您提出之前我无法从网络版打开应用程序,因为它纯粹是用JS编写的,而window.location会中断ajax请求和图像加载。

0 个答案:

没有答案