安卓WebView在項目中總結

來源:互聯網
上載者:User

標籤:通過   inner   互調   音樂   常用   setw   載入   dba   down   

一、簡介

在安卓開發中我們會遇到許多處理網頁的功能,以下就是我在實際中用到的分享給大家

1.顯示和渲染Web頁面

2.可和JavaScript互動調用

二、常用的方法

//啟用WebView為活躍狀態,能正常執行網頁的響應webView.onResume() ;//當頁面被失去焦點被切換到後台不可見狀態,需要執行onPause//通過onPause動作通知核心暫停所有的動作比如JavaScript執行。webView.onPause();//在關閉了Activity時,如果Webview的音樂或視頻,還在播放。就必須銷毀Webview//需要先從父容器中移除webview,然後再銷毀webview:rootLayout.removeView(webView); webView.destroy();
private WebViewClient webViewClient = new WebViewClient() {

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

@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url) {
webview.loadUrl(url);
return true;
}
// 設定載入開始的操作
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
LogUtil.print("onPageStarted");
}

//設定載入結束的操作
@Override
public void onPageFinished(WebView view, String url) {
String viewTitle = view.getTitle();
title_webview = viewTitle;
Url = url;
}
}

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//用javascript隱藏系統定義的404頁面資訊
LogUtil.print("onReceivedError errorCode =" + errorCode);
String data = "";
view.loadUrl("javascript:document.body.innerHTML=\"" + data + "\"");

}
};

三、與js的互動

      mWebView.getSettings().setJavaScriptEnabled(true);        //有JS互動的話加上下邊的        mWebView.addJavascriptInterface(new JSInterfaceCoupon(this), "yulinjs");
    // yulinjs為標識符互動的欄位 mWebView.getSettings().setSupportZoom(false); mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); //設定 緩衝模式 if (!NullUtil.isStringEmpty(type)&&type.equals(TOKEN_URL)){ mOpenFileWebChromeClient = new OpenFileWebChromeClient(this); mWebView.setWebChromeClient(mOpenFileWebChromeClient); }else{ mWebView.setWebChromeClient(new CustomChromeClient("HostApp", HostJsScope.class)); }
//書寫累通過構造傳入當前上下文
public class JSInterface {
Activity activity;
public JSInterface(Activity activity){
this.activity=activity;
}
//寫方法來調用js
@JavascriptInterface
public void jumpToYuQuanAdmin(String id){
Intent intent = new Intent(activity, ActivityUserInfo_2.class);
int uid = UnitSociax.stringParseInt(id);
intent.putExtra("uid", uid);
activity.startActivity(intent);
}

}
//下面是html代碼
<script type="text/javascript">   function showToast() {          yulinjs.showToast("哈哈啊哈 ");     }</script></head><body><input type="button" value="調用"     onClick="showToast()"/></body>html代碼很簡單,在想調用原生方法的js方法中使用yulinjs.shwoToast(“”)就可以成功調用原生方法。我們可以通過它來複製資訊,擷取點擊事件等。
(shwoToast是原生方法名,android是我們在addJavascriptInterface方法中自己定義的名字)。

四、返回每一層的問題

/是否可以後退Webview.canGoBack() //後退網頁Webview.goBack()//是否可以前進                     Webview.canGoForward()//前進網頁Webview.goForward()
//手機下方返回按鈕返回上一頁並不是退掉整個webview
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (isNeedBack && keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
mWebView.goBack();// 返回前一個頁面
return true;
}
return super.onKeyDown(keyCode, event);
}
 

 LeiLei_Tua

安卓WebView在項目中總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.