android中webview加载本地html并且相互交互

protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView=(WebView)findViewById(R.id.mwebview);
//设置编码
// mWebView.getSettings().setDefaultTextEncodingName("utf-8");

//支持js
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/button.html");

}


html中将应有的方法function放入javascript中不需在body中调用。

android中activity中动作mWebView.loadUrl("javascript:方法名");


打开本包内asset目录下的index.html文件

//mWebView.loadUrl("file:///android_asset/index.html");  


打开本地sd卡内的index.html文件
 //mWebView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");


打开指定URL的html文件
//mWebView.loadUrl("http://wap.baidu.com");

交互的时候可能出现onkeydown函数没执行的情况,此时可以根据dispatchkeyevent函数进行判断,此函数在按键按下和抬起分别执行一次,应根据event.getEvent()的值判断用户是否按下按钮或抬起按钮,当event.getEvent()==0,表示按下。当event.getEvent()==1,表示抬起。而event.getKeyCode()的值表示按键的键值。可以根据键值进行相关操作。



加载百度等页面可能出现在机器的自带浏览器上显示,此时如果不想在自带浏览器上显示而是想在webview本身上显示则:

mWebView.setWebViewClient(new WebViewClient() {  
            //点击网页中按钮时,在原页面打开  
            public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                view.loadUrl(url);  
                return true;  
            }  
            //页面加载完成后执行  
            @Override  
            public void onPageFinished(WebView view, String url) {  
                super.onPageFinished(view, url);  
                //例如有的网页想限制打开时可以在此方法中另外输入程序。 
            }  
              
        }); 



如果希望浏览的网页后退而不是推出浏览器,需要webview覆盖url加载,让它自动生成历史的访问记录,那样就可以通过后退或前进访问已访问过的站点

public boolean onKeyDown(int keyCode,KeyEvent event){

if(keyCode==KeyEvent.KEYCODE_BACK){

if(webview.canGoBack){

webview.goBack();//返回上一页

}else{

System.exit(0);//退出程序

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值