使用javascript在android上启动隐式意图

时间:2012-04-24 17:48:56

标签: javascript android android-intent webview implicit

在我的应用程序中,我生成一个html dinamically来填充webview并向用户显示信息。

此html包含带有数据的自定义URL,可通过隐式intent将其传递给另一个活动。 即。

    <a href="com.somedata://1/some Text">
       some Text
    </a>

所以我将数据:“1”“some text”传递给另一个活动。获得意图的活动使用

恢复数据
    Uri data = getIntent().getData();
   List<String> segs = data.getPathSegments();
   //here I get the number:
   String number = data.getHost();
   //here I get the text:
   String text = segs.get(0);

效果很好但是。 这迫使我的应用程序两次写入文本。一个在 href =“HereGoesData”和其他文本本身,以便在webview中向用户显示

我想知道是否有办法避免这种情况,使用javascript来动态创建意图的网址。

因此脚本应该等待用户点击并恢复文本,并根据该文本创建一个URL以使用该信息启动意图。

我对javascript了解不多,但如果有可能,我认为这不应该那么难。

的Tx

1 个答案:

答案 0 :(得分:0)

好吧,我做到了。 实际上对于javascript中的非新手来说并不困难

首先,您必须更改标记以使用javascript以编程方式调用构建URL的函数: 而不是:

     <a href="com.somedata://1/some Text">
      some Text
  </a>

使用:

   <a id="someID" href="javascript:void(0)" onclick="buildUrl(this)">
      some Text
  </a>

因此,当您单击它时,执行构建URL的javascript函数并启动隐式intent:

    <script type="text/javascript">
    function buildUrl(ele){
      var nodes = ele.childNodes;
      var a = nodes[1].textContent

      var url = "com.somedata://"

    window.location = url + 1 + "/" + a
     }
  </script>

它已经完成了  测试和工作。