龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 移动开发 > Android开发 >

Android开发笔记之探秘WebView(4)

时间:2014-08-04 11:00来源:网络整理 作者:网络 点击:
分享到:
自定义WebView,你可以添加你自己的行为: 创建和设置WebChromeClient子类。当一些可能影响浏览器的用户界面发生了,例如,进度更新和JavaScript警报送到这里

 自定义WebView,你可以添加你自己的行为:
创建和设置WebChromeClient子类。当一些可能影响浏览器的用户界面发生了,例如,进度更新和JavaScript警报送到这里(见调试任务)调用这个类。
创建和设置WebViewClient子类。当影响内容呈现的事情发生是调用这个类,例如,错误或表单提交。您也可以拦截的URL加载到这里(通过shouldOverrideUrlLoading())。
修改WebSettings,如以setJavaScriptEnabled()方式启用JavaScript。
将Java对象通过addJavascriptInterface(Object,String)方法注射到WebView。 这方法允许您将Java对象注入到一个页面的JavaScript上下文,这样他们可以通过JavaScript访问的页面。
下面是一个更加复杂的例子,显示错误处理,设置和进展通知:

// Let's display the progress in the activity title bar, like the 
// browser appdoes. 
getWindow().requestFeature(Window.FEATURE_PROGRESS); 
webview.getSettings().setJavaScriptEnabled(true); 
final Activity activity = this; 
webview.setWebChromeClient(new WebChromeClient() { 
 public void onProgressChanged(WebView view, int progress) { 
  //Activities and WebViews measure progress with different scales. 
  //The progress meter will automatically disappear when we reach 100% 
  activity.setProgress(progress * 1000); 
 } 
}); 
webview.setWebViewClient(new WebViewClient() { 
 public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
  Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
 } 
}); 
webview.loadUrl("http://developer.android.com/");  

缩放:
        可以通过 设置 WebSettings.setBuiltInZoomControls(boolean) ,启用内置缩放。

注意:使用缩放,如果不是高度或宽度设置为WRAP_CONTENT可能会导致不确定的行为,应该避免。

精彩图集

赞助商链接