如果我在Android或iPhone应用程序中加载了webkit视图,我可以在webkit的页面中来回传递数据吗?
例如,我可以从网上下载html视图并使用存储在我设备上的数据填充该视图中的表单吗?
答案 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);