Webkit与本机环境的通信

DrA*_*oel 2 iphone android webkit

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

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

Rob*_*ond 8

在Android中使用addJavaScriptInterface().

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

webview.addJavaScriptInterface(new MyInterface(), "myInterface");
Run Code Online (Sandbox Code Playgroud)

在webview中的html中.

<script type="text/javascript">
     var someData = myInterface.getData();
</script>
Run Code Online (Sandbox Code Playgroud)

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

webview.loadUrl("javascript:document.getElementById('someTextField').value = myInterface.getData();");
Run Code Online (Sandbox Code Playgroud)