5

我有协议(如 http),其方案由在 android 中注册的 3rd 方应用程序管理。即,someapp://someaction 或类似的东西。

在将 chrome 升级到最新版本(chrome 25)之前,它工作正常,但升级后,它不起作用。

我只是使用 iframe 来尝试加载注册的应用程序。这是我的代码快照。

<iframe src="about:blank" id="myframe"/>
<script>
  function changesrc(){
    document.getElementById("myframe").src="someapp://someaction"
  }
</script> 

对这个问题有什么想法吗??

4

1 回答 1

2

我们认为这可能存在安全或恶意操作错误,因此不会再在 Chrome 中实施。有关详细信息,请参阅https://code.google.com/p/chromium/issues/detail?id=169204#c27 。

有一个解决方案,您可以构造一个用户可以调用 的特殊“意图”url 。

基于意图的 URI 的基本语法如下:

“intent:”
    HOST/URI-path “;”  // Optional
        “#Intent;”
        package=[string];
        action=[string];
        category=[string];
        component=[string];
                    scheme=[string];
    “;end”

Android 源代码中提供了解析详细信息。

要启动 Zxing 条码扫描器应用程序,您可以将您的 href 编码如下 intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end 在锚点上的 href 中,如下所示二维码

摘自:https ://code.google.com/p/zxing/source/browse/trunk/android/AndroidManifest.xml#97

android manifest 将 scheme 定义为“zxing”,将包定义为“com.google.zxing.client.android”,将主机数据定义为“scan” 当用户单击此链接时,他们将直接进入应用程序如果他们已经安装了它,或者如果没有直接安装到 Play 商店。

于 2013-03-15T19:56:00.677 回答