webview基本调试技巧

本文介绍了在Android平台上使用WebView进行开发的基本方法,包括设置访问互联网权限、支持JS alert弹窗、实现JS与Android对象间的相互调用,为调试和增强应用功能提供了实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 随着嵌入式硬件平台的迅速发展,目前JS与WEBKIT的应用越来越广泛。目前在ANDROID平台,有幸可以尝试下这方面的应用开发。

 

webview的基本用法:

 

        mWebView = (MyWebView) findViewById(R.id.webview);   
        WebSettings webSettings = mWebView.getSettings();   
        webSettings.setJavaScriptEnabled(true );   
        webSettings.setSupportZoom(true); 


(其中MyWebView是自己的继承类)

//mWebView.loadUrl("file:///android_asset/default.htm" ); /*本地文件调试*/
mWebView.loadUrl("http://www.google.com/" ); 


注意访问internet时,AndroidManifest.xml需要增加一条设置属性:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.test.webview"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.INTERNET" />


 

webview的支持JS alert:

      在用webview调试时,有时希望能执行JS里的alert 弹出框。便于直观的调试!需要设置下面的函数即可:

		final Context myApp = this;   
		
		/* WebChromeClient must be set BEFORE calling loadUrl! */   
		mWebView.setWebChromeClient(new WebChromeClient() {   
		    @Override   
		    public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)   
		    {   
		        new AlertDialog.Builder(myApp)   
		            .setTitle("javaScript dialog")   
		            .setMessage(message)   
		            .setPositiveButton(android.R.string.ok,   
		                    new AlertDialog.OnClickListener()   
		                    {   
		                        public void onClick(DialogInterface dialog, int which)   
		                        {   
		                            result.confirm();   
		                        }   
		                    })   
		            .setCancelable(false)   
		            .create()   
		            .show();   
		   
		        return true;   
		    };   
		});     


 

如果需要避免页面链接时不在新的页面打开,需要做下面的设置:

         mWebView.setWebViewClient(new MyWebViewClient());  
	//避免链接时按新的页面打开
	public class MyWebViewClient extends WebViewClient{
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url){
			view.loadUrl(url);
			return true;
		}
	}


 

JS 调用Android 对象函数:

出了一些应用需要外,调试时JS里也可以调用ANDROID的对象函数打印一些LOG:

JS:

document.onkeydown = keyDown 
function keyDown(event) { 
	window.alert("hello");
	var key_code = event.keyCode;
	alert(key_code);
	ANDROID.debug("area="+area);
}


ANDROID:

        mWebView.addJavascriptInterface(new  Object() {   
            public   int  debug(final String log) {   
                mHandler.post(new  Runnable() {   
                    public   void  run() {   
                    	Log.d("JS call", log);
                    }   
                });
                return 1;
            }   
        }, "ANDROID" );  


 

Android调用JS 对象函数:

HTML中JS的定义:

		function fillContent(){
			document.getElementById("content").innerHTML = 
			     "This Content is showed by Android invoke Javascript function.";
		}


ANDROID调用的写法:

		//给button添加事件响应,执行JavaScript的fillContent()方法
		mButton.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				mWebView.loadUrl("javascript:fillContent()");
			}
		});


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值