androidWebview60
A. Android系統 WebView是什麼有什麼用
現在越來越多的APP都內置了Web網頁去載入視圖,也就是我們常說的Hybrid APP混合應用,市場上很多平台都是這樣做的,比如我們經常使用的淘寶、京東等電商平台。這些是如何實現的呢?在我們Android中有一個WebView組件,它就可以實現此類功能。它是Android中的原生UI控制項,主要用於在APP應用中方便地訪問遠程網頁或本地HTML資源,同時WebView也在Android中充當java代碼和JS代碼之間交互的橋梁,實際上也可以將WebView看做一個功能最小化的瀏覽器。下面我們一起來看看WebView的一些常用的使用方法。
WebView是Android系統提供的一個能顯示網頁的系統控制項,它是一個特殊的View,同時也是一個ViewGroup,可以有很多其他子View。在Android 4.4以下(不包含4.4)系統WebView底層實現是採用WebKit內核,而在Android 4.4及其以上Google採用了Chromium內核作為系統WebView的底層內核支持。在這一變化中Android提供的WebView相關API並沒有發生較大變化,在4.4上也兼容低版本的API並且引進了少部分API。這里簡單介紹下基於Chromium的WebView和基於WebKit的WebView之間的差異,基於Chromium的Webview提供了更廣的HTML5、CSS3、JavaScript支持,在Android系統版本5.0上基於Chromium 37,WebView提供了絕大多數的HTML5特性支持,除此之外Chromium也支持遠程調試(Chrome DevTools)。WebKit JavaScript引起採用WebCore JavaScript在Android 4.4上換成了V8能直接提升JavaScript性能。
二、作用
1、顯示和渲染Web頁面
2、使用html文件(網路上或本地assets中)作為布局
3、可與JavaScript交互調用
註: WebView控制項功能強大,除了具有一般View的屬性和設置外,還可以對Url請求、頁面載入、渲染、頁面交互進行強大的處理。
B. android webview是什麼
安卓手機的webkit內核瀏覽器,在SDK中封裝為一個叫做WebView組件
C. android 什麼時候適合用webview
一開始就有的。
Android webview使用詳解
1. 打開網頁時不調用系統瀏覽器, 而是在本WebView中顯示:
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
2. 通過java代碼調用javascript
WebSettings webSettings = mWebView .getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
webview.loadUrl("javascript:wave()");
}
});
}
}, "demo");
3. 按返回鍵時, 不退出程序而是返回上一瀏覽頁面:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
4. 打開頁面時, 自適應屏幕:
WebSettings webSettings = mWebView .getSettings();
webSettings.setUseWideViewPort(true);//設置此屬性,可任意比例縮放
webSettings.setLoadWithOverviewMode(true);
5. 便頁面支持縮放:
WebSettings webSettings = mWebView .getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
6.如果webView中需要用戶手動輸入用戶名、密碼或其他,則webview必須設置支持獲取手勢焦點。
webview.requestFocusFromTouch();
7.WebView 載入界面主要調用三個方法:LoadUrl、LoadData、LoadDataWithBaseURL.
1、LoadUrl 直接載入網頁、圖片並顯示.(本地或是網路上的網頁、圖片、gif)
2、LoadData 顯示文字與圖片內容 (模擬器1.5、1.6)
3、LoadDataWithBase 顯示文字與圖片內容(支持多個模擬器版本)
8.WebSettings 的常用方法介紹
setJavaScriptEnabled(true); //支持js
setPluginsEnabled(true); //支持插件
setUseWideViewPort(false); //將圖片調整到適合webview的大小
setSupportZoom(true); //支持縮放
setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持內容重新布局
supportMultipleWindows(); //多窗口
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //關閉webview中緩存
setAllowFileAccess(true); //設置可以訪問文件
setNeedInitialFocus(true); //當webview調用requestFocus時為webview設置節點
webview webSettings.setBuiltInZoomControls(true); //設置支持縮放
(true); //支持通過JS打開新窗口
setLoadWithOverviewMode(true); // 縮放至屏幕的大小
setLoadsImagesAutomatically(true); //支持自動載入圖片
9.WebViewClient 的方法全解
doUpdateVisitedHistory(WebView view, String url, boolean isReload) //(更新歷史記錄)
onFormResubmission(WebView view, Message dontResend, Message resend) //(應用程序重新請求網頁數據)
onLoadResource(WebView view, String url) // 在載入頁面資源時會調用,每一個資源(比如圖片)的載入都會調用一次。
onPageStarted(WebView view, String url, Bitmap favicon) //這個事件就是開始載入頁面調用的,通常我們可以在這設定一個loading的頁面,告訴用戶程序在等待網路響應。
onPageFinished(WebView view, String url) //在頁面載入結束時調用。同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading 條,切換程序動作。
onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (報告錯誤信息)
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(獲取返回信息授權請求)
onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重寫此方法可以讓webview處理https請求。
onScaleChanged(WebView view, float oldScale, float newScale) // (WebView發生改變時調用)
onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被載入時調用)
shouldOverrideKeyEvent(WebView view, KeyEvent event)//重寫此方法才能夠處理在瀏覽器中的按鍵事件。
shouldOverrideUrlLoading(WebView view, String url)
//在點擊請求的是鏈接是才會調用,重寫此方法返回true表明點擊網頁裡面的鏈接還是在當前的webview里跳轉,不跳到瀏覽器那邊。這個函數我們可以做很多操作,比如我們讀取到某些特殊的URL,於是就可以不打開地址,取消這個操作,進行預先定義的其他操作,這對一個程序是非常必要的。
D. 安卓系統webview是什麼
WebKit是Mac OS X v10.3及以上版本所包含的軟體框架(對v10.2.7及以上版本也可通過軟體更新獲取)。 同時,WebKit也是Mac OS
X的Safari網頁瀏覽器的基礎。WebKit是一個開源項目,主要由KDE的KHTML修改而來並且包含了一些來自蘋果公司的一些組件。
傳統上,WebKit包含一個網頁引擎WebCore和一個腳本引擎JavaScriptCore,它們分別對應的是KDE的KHTML和KJS。不過,
隨著JavaScript引擎的獨立性越來越強,現在WebKit和WebCore已經基本上混用不分(例如Google Chrome和Maxthon
3採用V8引擎,卻仍然宣稱自己是WebKit內核)。
Androidsystemwebview應該是一瀏覽器控制項可以卸載,卸載方式:
打開主菜單選擇設置在設置中選擇應用選擇你需要停止的應用,例如Mediacode等點擊強行停止,同時可能會彈出一個警告,點確定即可確定完成就可以徹底停止這個應用運行了點擊卸載即可卸載這個應用建議不要卸載,Android系統設置中如果強制停止某些應用,可能會造成程序出錯,閃退,死機,重啟等後果,不過某些應用不給退出的情況下只能用這種方式
E. 請問android TV 上面 我就跑app裡面就一個webView 電視屏幕解析度是1900*1020的
mWebView.getSettings().setJavaScriptEnabled(true);
//intmInitialScale自適應屏幕百分比針對整個屏幕
mWebView.setInitialScale(mInitialScale);
//整個布局以焦點為中心放大縮小
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.loadUrl(url);
F. android webview的運用
1、自己繼承WebViewClient重寫一個MyWebClient,裡面有一個shouldOverrideUrlLoading()方法,這個方法就是你在WebView里點擊鏈接後要執行的方法,在這個方法里去處理兩個WebView的顯示和隱藏。
2、當然要注意自己寫的這個MyWebClient要設置到控制項里:webView.setWebViewClient(new MyWebClient());
3、如果有必要,可以寫兩個MyWebClient_1,MyWebClient_2,分別把兩個WebView都設置上,這樣可以對兩個WebView區別操作。
4、至於第二個WebView的進入,就要用動畫來寫。這個應該屬於位置移動動畫TranslateAnimation。
G. Android System Webview是什麼東西
這是安卓系統內置webkit內核瀏覽器的一個組件,組件名稱為Webview。
WebView是安卓系統中一款基於webkit引擎、展現web頁面的控制項。Android的Webview在低版本和高版本採用了不同的webkit版本內核,在版本更新到4.4後直接使用了Chrome版本。
WebView能夠對Web頁面進行i顯示和渲染,可以直接使用html文件(網路上或本地assets中)作布局,更可以可和JavaScript交互調用。
WebView控制項功能強大,除了具有一般View的屬性和設置外,還可以對url請求、頁面載入、渲染、頁面交互進行強大的處理。
總的來說,webView是用於展示網路請求後的結果,比如:開發者開發一款APP,如果想要用它訪問網路,但是不想使用手機安裝的瀏覽器,而是想在自己APP內部打開展示網頁,此時就可以使用webView這個組件來展示網頁。
(7)androidWebview60擴展閱讀:
WebView組件使用的WebKit引擎。默認情況下,WebView不支持JavaScript,web頁面的錯誤也會被忽略,如果只是用Webview來顯示網頁而不用交互,默認配置就可以了。如果需要交互,就需要自定義配置了。
WebView載入遠程網頁語法格式:
webView.loadUrl("http://www..com");
WebView載入assets目錄下的本地網頁語法格式:
webView.loadUrl("file:///android_asset/test.html");
WebView載入手機本地網頁語法格式:
webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html");
WebView載入HTML代碼片段語法格式:
webView.loadData(data, "text/html", "utf-8");
webView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);
H. android webview 如何存儲cookie
在App中嵌入網頁,使用Nativie方式登錄,然後將cookie保存到WebView中,實現免登錄功能。同步Cookie到WebView的方法可以參考下面的代碼:
/**
* Sync Cookie
*/
private void syncCookie(Context context, String url){
try{
Log.d("Nat: webView.syncCookie.url", url);
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();// 移除
cookieManager.removeAllCookie();
String oldCookie = cookieManager.getCookie(url);
if(oldCookie != null){
Log.d("Nat: webView.syncCookieOutter.oldCookie", oldCookie);
}
StringBuilder sbCookie = new StringBuilder();
sbCookie.append(String.format("JSESSIONID=%s","INPUT YOUR JSESSIONID STRING"));
sbCookie.append(String.format(";domain=%s", "INPUT YOUR DOMAIN STRING"));
sbCookie.append(String.format(";path=%s","INPUT YOUR PATH STRING"));
String cookieValue = sbCookie.toString();
cookieManager.setCookie(url, cookieValue);
CookieSyncManager.getInstance().sync();
String newCookie = cookieManager.getCookie(url);
if(newCookie != null){
Log.d("Nat: webView.syncCookie.newCookie", newCookie);
}
}catch(Exception e){
Log.e("Nat: webView.syncCookie failed", e.toString());
}
}
使用上面的方法可以將Cookie同步到WebView中,這樣瀏覽網頁時即可實現免登錄。
但是在實際使用過程中會出現Cookie並未保存成功,每次都會跳轉到登錄頁面應為初始化WebView時漏掉了重要的東西。可以參考下面代碼設置WebView。
/**
* init WebView Settings
* */
private void initWebViewSettings(){
// myWebView.getSettings().setSupportZoom(true);
// myWebView.getSettings().setBuiltInZoomControls(true);
// myWebView.getSettings().setDefaultFontSize(12);
// myWebView.getSettings().setLoadWithOverviewMode(true);
// 設置可以訪問文件
myWebView.getSettings().setAllowFileAccess(true);
//如果訪問的頁面中有Javascript,則webview必須設置支持Javascript
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setUserAgentString(MyApplication.getUserAgent());
myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
myWebView.getSettings().setAllowFileAccess(true);
myWebView.getSettings().setAppCacheEnabled(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setDatabaseEnabled(true);
}
完成以上兩步操作,再次運行程序,就會發現,打開網頁後不會再跳轉到登錄頁面了。
I. 安卓 webview怎麼使用,求高手
Android和iOS系統都提供了標準的瀏覽器控制項,在android中是WebView,ios中為UIWebView。在iOS中你實例化一個UIWebView即可調用loadRequest來載入一個網頁,但是在Android中你不僅需要創建一個WebView,還需要做一些其他的事情。