0

在我的应用程序中,我动态地生成一个 html 来填充 web 视图并向用户显示信息。

此 html 具有自定义 URL,其中包含数据以通过隐式意图将其传递给另一个活动。IE。

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

所以我将数据:“1”和:“一些文本”传递给另一个活动。获得意图的活动通过以下方式恢复数据

    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"中,另一个在文本本身中,以在 web 视图中向用户显示

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

所以脚本应该等待用户的点击并恢复文本,并在此基础上创建一个 URL 来启动带有信息的意图。

我对javascript不太了解,但如果可能的话,我认为这应该不难做到。

发送

4

1 回答 1

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 函数:

    <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>

它已经过测试并且可以正常工作。

于 2012-04-25T09:30:57.430 回答