在我的应用程序中,我生成一个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
答案 0 :(得分:0)
首先,您必须更改标记以使用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>
它已经完成了 测试和工作。