Webkit与本机环境的通信

时间:2010-07-15 15:27:58

标签: iphone android webkit

如果我在Android或iPhone应用程序中加载了webkit视图,我可以在webkit的页面中来回传递数据吗?

例如,我可以从网上下载html视图并使用存储在我设备上的数据填充该视图中的表单吗?

2 个答案:

答案 0 :(得分:8)

是使用addJavaScriptInterface()在Android中使用。

class MyInterface {
    private String someData;
    public String getData() { return someData; }
}

webview.addJavaScriptInterface(new MyInterface(), "myInterface");

在webview中的html中。

<script type="text/javascript">
     var someData = myInterface.getData();
</script>

顺便说一句,如果您使用的网页不是您的(因此您无法对其进行修改),您可以插入 javascript内联。例如:

webview.loadUrl("javascript:document.getElementById('someTextField').value = myInterface.getData();");

答案 1 :(得分:0)

对于iPhone,您可以使用stringByEvaluatingJavaScriptFromString从Objective-C调用JavaScript函数。

例如,要获取名为“fname”的输入字段的值:

NSString * fString =[webView stringByEvaluatingJavaScriptFromString:@"document.getElementByName(\"fname\").value"]; 
NSLog(@"fString: %@",fString);