多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > webView使用方法小結

webView使用方法小結

來源:程序員人生   發布時間:2014-11-04 09:04:30 閱讀次數:5002次


1、添加權限:AndroidManifest.xml中必須使用許可"android.permission.INTERNET",否則會出Web page not available毛病。
2、在要Activity中生成1個WebView組件:WebView webView = new WebView(this);
3、設置WebView基本信息:
如果訪問的頁面中有Javascript,則webview必須設置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true); 
觸摸焦點起作用
requestFocus();
取消轉動條
this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
4、設置WevView要顯示的網頁:
http://www.vxbq.cn/Internet/用:webView.loadUrl("http://www.google.com"); 
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件寄存在:assets文件中
5、如果希望點擊鏈接由自己處理,而不是新開Android的系統browser中響應當鏈接。
給WebView添加1個事件監聽對象(WebViewClient) 
并重寫其中的1些方法
shouldOverrideUrlLoading:對網頁中超鏈接按鈕的響應。
當按下某個連接時WebViewClient會調用這個方法,并傳遞參數:按下的url 
onLoadResource 
onPageStart 
onPageFinish 
onReceiveError
onReceivedHttpAuthRequest
6、如果用webview點鏈接看了很多頁以后,如果不做任何處理,點擊系統“Back”鍵,全部閱讀器會調用finish()而結束本身,如果希望閱讀的網頁回退而不是退出閱讀器,需要在當前Activity中處理并消費掉該Back事件。
覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法。
[java] view plaincopyprint?
public boolean onKeyDown(int keyCoder,KeyEvent event){
if(webView.canGoBack() && keyCoder == KeyEvent.KEYCODE_BACK){
webview.goBack(); //goBack()表示返回webView的上1頁面
return true;
}
return false;

8、webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

9、
* 通過WebSettings設置WebView的1些屬性、狀態。通過webView.getSettings取得
 例如:setAllowFileAccess(是不是能訪問文件數據) 
  setBuiltInZoomControls(設置是不是支持縮放)、
  setCacheMode(設置緩沖的模式)
  setJavaScriptEnabled(設置是不是支持JavaScript)........


* 通過WebViewClient來自定義網頁閱讀程序。專門輔助WebView處理各種通知、要求等事件的類。      通過webView.setWebChromeClient取得
 方法:
  doUpdateVisitedHistory (更新歷史記錄)
  onFormResubmission(利用程序重新要求網頁數據)
  onLoadResource(加載指定地址提供的資源)
  onPageFinished(網頁加載終了)
  onPageStarted(網頁開始加載)
  onReceivedError(報告毛病信息)
  onScaleChanged(WebView產生改變)
  shouldOverrideUrlLoading(控制新的連接在當前WebView中打開)


* WebChromeClient專門用來輔助WebView處理JavaScript的對話框、圖標、網站標題、加載進度等。
 方法:onCloseWindow(關閉WebView)
  onCreateWindow(創建WebView)
  onJsAlert(處理Js中的Alert對話框)、onJsConfirm(處理Js中的Confirm對話框)、onJsPrompt(處理JS中的Prompt對話框)
  onProgressChanged(加載進度條改變)
  onReceivedIcon(網頁圖標更改)
  onReceivedTitle(網頁標題更改)
  onRequestFocus(WebView顯示焦距)


package com.dan;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.URLUtil;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;


public class WebActivity extends Activity {


 private WebView webView;
 private EditText urlEdt;
 private Button btn;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.web);
  
  urlEdt = (EditText)findViewById(R.id.edt_1);
  btn = (Button)findViewById(R.id.btn_1);
  
  webView = (WebView)findViewById(R.id.web);
  WebSettings settings = webView.getSettings();
  //webView.loadUrl("http://10.0.2.2/affiliate/code/login.php");
  //設置支持Js腳本
  settings.setJavaScriptEnabled(true);
  //設置可以訪問文件
  settings.setAllowFileAccess(true);
  //支持縮放
  settings.setBuiltInZoomControls(true);
  //設置WebViewClient
  webView.setWebViewClient(new WebViewClient(){
   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
   }


   @Override
   public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
   }


   @Override
   public void onPageStarted(WebView view, String url, Bitmap favicon) {
    super.onPageStarted(view, url, favicon);
   }
   
  });
  //設置WebChromeClient
  webView.setWebChromeClient(new WebChromeClient(){


   @Override
   public boolean onJsAlert(WebView view, String url, String message,
     JsResult result) {
    AlertDialog.Builder alert = new AlertDialog.Builder(WebActivity.this);
    alert.setTitle("提示對話框");
    alert.setMessage(message).setPositiveButton("肯定", new OnClickListener() {
     public void onClick(DialogInterface dialog, int which) {
     }
    });
    alert.create().show();
    return true;
   }


   @Override
   public boolean onJsConfirm(WebView view, String url,
     String message, JsResult result) {
    return super.onJsConfirm(view, url, message, result);
   }


   @Override
   public boolean onJsPrompt(WebView view, String url, String message,
     String defaultValue, JsPromptResult result) {
    return super.onJsPrompt(view, url, message, defaultValue, result);
   }


   @Override
   public void onProgressChanged(WebView view, int newProgress) {
    WebActivity.this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress*100);
    super.onProgressChanged(view, newProgress);
   }


   @Override
   public void onReceivedTitle(WebView view, String title) {
    WebActivity.this.setTitle("中國世貿通加盟管理登錄頁");
    super.onReceivedTitle(view, title);
   }
   
  });
  
  btn.setOnClickListener(new Button.OnClickListener(){
   public void onClick(View v) {
    String url = urlEdt.getText().toString();
    if( URLUtil.isNetworkUrl(url) ){
     webView.loadUrl(url);
    }else{
     urlEdt.setHint("輸入的網址毛病,請重新輸入");
    }
    
   }
  });
  
 }


}
* 后退 和 前進  canGoBack 與canGoForward
//后退
if( (keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack() ){
 webView.goBack();
 return true;
}


將Html代碼通過String的情勢被加載到WebView中,而且在Html中可以援用存儲在裝備中的圖片資源等。這個方式可以非常方便的實現RichTextField的效果,特別是對某些程序提供1些本地的簡單文檔時,非常方便。


下邊是實現這個功能的源代碼:


public void loadHTML() {        final String mimeType = "text/html";        final String encoding = "utf⑻";        final String html = "<h1>Header</h1><p>Custom HTML</p>                          <p><img src="file:///android_asset/image1.jpg" />                          </p>";        WebView wv = (WebView) findViewById(R.id.wv1);        wv.loadDataWithBaseURL("fake://not/needed", html,                            mimeType, encoding, "");    }   //wView.loadUrl("file:///android_asset/index.html");   -----打開本包內asset目錄下的index.html文件  //wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html"); -----打開本地sd卡內的index.html文件 //wView.loadUrl("http://wap.baidu.com"); -----打開指定URL的html文件 ......
webView.setInitialScale(30); //這個就是重點,你可以在這里根據需求來設置縮放比例

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美最刺激好看的一级毛片 | 亚洲国产欧美视频 | 一级毛片高清大全免费观看 | www.国产在线观看 | 久久国产精品免费一区二区三区 | 国产精品_国产精品_国产精品 | 99热自拍| 亚洲女人天堂网 | 久久爱老牛影视一区二区 | 伊人55| 91久久色 | 校园春色自拍偷拍 | 成年人免费观看的视频 | 我要看日本黄色片 | 日本特黄一级片 | 五月天欧美激情午夜情 | 亚洲午夜国产精品无卡 | 午夜高清免费观看视频 | 波多野结衣中文字幕一区二区三区 | 操网| 亚洲欧美一区二区三区综合 | 国产一区亚洲欧美成人 | 天堂在线影院 | 91久色视频 | 午夜影院小视频 | 亚洲日本中文字幕在线 | 欧美日韩免费一区二区三区 | 99re热久久精品这里都是精品 | 成人欧美视频在线看免费 | 在线观看www | 欧美亚洲国产日韩 | 爱爱网站免费 | 国产亚洲综合久久 | 三级大片网站 | 国产欧美精品一区二区三区 | 日韩福利网站 | 亚洲精品国产第一区二区图片 | 视频在线观看网站免费 | 亚洲国产天堂久久九九九 | 在线观看一区二区三区四区 | 亚洲欧美在线免费观看 |