android WebView于js交互应用简例

来源:互联网 发布:松下网络摄像机官网 编辑:程序博客网 时间:2024/05/18 05:50

    

 例:作为示例在工程放了个html文件,希望可以android上处理其输入的内容

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Insert title here</title></head>    <body><input id="val" /><input type="submit" value="submit" onclick=""/><br />     </body></html>



1、一般的需要。添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。虽然我们这里是放在项目里的,也加上了。。

 <uses-permission android:name="android.permission.INTERNET" />

   2、在要Activity中生成一个WebView组件:WebView webView = new WebView(this);或者可以在activity的layout文件里添加webview控件:

    <WebView        android:id="@+id/webView1"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@+id/textView1" />


  3、设置WebView基本信息:
          这里要用到Javascript,所以webview必须设置支持Javascript。
          webview.getSettings().setJavaScriptEnabled(true);

WebView webView = (WebView) findViewById(R.id.webView1);webView.getSettings().setJavaScriptEnabled(true);
4、再定义一个Javascript Interface

public interface OnWebViewListener {public void onClick(String Url);}

5、在webview定义一个在其内嵌页面中可以触发的事件

webView.addJavascriptInterface(new OnWebViewListener() {@Overridepublic void onClick(String text) {Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();}}, "OnWebViewListener");String body = getFromAssets("sample.html");body = body.replace("onclick=\"\"","onClick=\"javascript:OnWebViewListener.onClick(document.getElementById('val').value)\"");webView.loadData(body, "text/html", "utf-8");

public String getFromAssets(String fileName) {String Result = "";try {InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName));BufferedReader bufReader = new BufferedReader(inputReader);String line = "";while ((line = bufReader.readLine()) != null)Result += line;return Result;} catch (Exception e) {e.printStackTrace();}return Result;}


6、运行效果


(完)


0 0
原创粉丝点击