Android开发-WebView与JavaScript交互调用.docx
文本预览下载声明
制氧机十大品牌, HYPERLINK 制氧机
现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅android可以用,ios也可以用,symbian也可以直接用。而且WebView对Javascript的支持很强,但也没有亲身编程测试一下,所有这里举个例子说明一下如何在Javascript中调用java中函数
1、创建一个android 工程?TestWebView
2、继承自 Activity
pre?name=code?class=java?style=font-family:?Arial,?Helvetica,?simsun,?u5b8bu4f53;?span?style=font-size:16px;public?class?TestWebView?extends?Activity?{??
????private?WebView?mWebView;??
??
????@Override??
????public?void?onCreate(Bundle?savedInstanceState)?{??
????????super.onCreate(savedInstanceState);??
????????setContentView(R.layout.main);??
????????mWebView?=?(WebView)?findViewById(R.id.htmlview);??
??
????????WebSettings?webSettings?=?mWebView.getSettings();??
??????????
????????//?是否允许在webview中执行javascript??
????????webSettings.setJavaScriptEnabled(true);??
??
????????//?绑定java对象到JavaScript中,这样就能在JavaScript中调用java对象,实现通信。??
????????//?这种方法第一个参数就是java对象,第二个参数表示java对象的别名,在JavaScript中使用??
?????????mWebView.addJavascriptInterface(new?DemoJavaScriptInterface(),?demo);??
??
?????????//?webview加载本地html代码,注意本地html代码必须放在工程assets目录下,然后通过??
????????//?file:///android_asset/demo.html访问??
????????mWebView.loadUrl(file:///android_asset/demo.html);??
????}??
??????
????public?class?DemoJavaScriptInterface?{??
????????public?DemoJavaScriptInterface()?{??
??
????????}??
??
????????public?int?mydata()?{??
????????????Log.i(TEST,mydata);??
????????????return?0;??
????????}??
????}??
}/span??
3、修改 main.xml 文件如下
span?style=font-size:16px;?xml?version=1.0?encoding=utf-8???
RelativeLayout?xmlns:android=/apk/res/android??
????android:layout_width=fill_parent?android:layout_height=fill_parent??
??????
??
????WebView?android:id=@+id/htmlview??
????????android:layout_centerHorizontal=true?android:layout_centerVertical=true??
????????android:layout_marginLeft=0px?android:layout_width=fill_parent??
????????android:layout_height=fill_parent?/??
??
/RelativeLayout/span??
4、在assets目录下,新建一个html文件:demo.html,使用JAVAScript代码编写
!DOCTYPE?htm
显示全部