android關閉webview
⑴ 如何學習Android5.0 下 新的 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,於是就可以不打開地址,取消這個操作,進行預先定義的其他操作,這對一個程序是非常必要的。
⑵ android 如何徹底退出一個帶有webview的activity
[mw_shl_code=java,true]appView.setVerticalScrollBarEnabled(false);
WebSettings webSetting = appView.getSettings();
webSetting.setJavaScriptEnabled(true);
webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
appView.addJavascriptInterface(new Object() {
public void closeActivity() {
mHandler.post(new Runnable() {
public void run() {
//appView.loadUrl("javascript:wave()");
PhonegapFrame.this.finish();
}
});
}
}, "javaMethod");[/mw_shl_code]
然後在html裡面:
[mw_shl_code=html,true] function closeWindow() {
window.javaMethod.closeActivity();
}[/mw_shl_code]
⑶ android activity退出頁面時如何結束webview的載入
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
if(webView!=null){
webView.destroy();
}
super.onDestroy();
}
⑷ 把程序管理的android system webview強行停止了
Android system webview 應該是一瀏覽器控制項 可以卸載,卸載方式: 打開主菜單選擇設置 在設置中選擇應用 選擇你需要停止的應用,例如Mediacode 等 點擊強行停止,同時可能會彈出一個警告,點確定即可 確定完成 就可以徹底停止這個應用運行了 點擊卸載即可卸載這個應用 建議不要卸載,Android系統設置中如果強制停止某些應用,可能會造成程序出錯,閃退,死機,重啟等後果,不過某些應用不給退出的情況下只能用這種方式
⑸ android開發 webview點擊空白處刷新怎麼處理
方法一:
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); //在當前的webview中跳轉到新的url
return true;
}
});
方法二:
mWebView.goBack(); //後退
mWebView.goForward();//前進
mWebView.reload(); //刷新
//點擊後退按鈕,讓WebView後退一頁(也可以覆寫Activity的onKeyDown方法)
webview.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { //表示按返回鍵
時的操作
webview.goBack(); //後退
//webview.goForward();//前進
return true; //已處理
}
}
return false;
}
});
⑹ android system webview 可以卸載嗎
Android
System
Webview不能刪除卸載。
【簡介】
android
system
Webview是安卓的一個瀏覽器內核,手機上的應用可以通過調用它來直接顯示網頁內容。
【作用】
安卓app中用於顯示網頁內容的組件,更不更新無所謂別卸載了就行;
它是chrome看視頻以及一些視覺元素會用到;
這個程序刪除以後手機上的瀏覽器打開就會停止。
參考資料
安卓巴士:http://www.apkbus.com
⑺ android system webview可以停用嗎
可以,打開360安全衛士—軟體管家—卸載里找到要卸載的軟體然後點卸載就OK了。
⑻ 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請求、頁面載入、渲染、頁面交互進行強大的處理。
⑼ android 中 webview 怎麼用 localStorage
localStorage sessionStorage 都是HTML5的東西
這些東西和webView沒有什麼關系
webView相當一於一個瀏覽器而已
而localStorage sessionStorage是用js腳本去寫的,只要你設置webView允許執行javascript腳本即可
設置方式:
WebSettings setting = webView.getSettings();
setting.setJavaScriptEnabled(true);//支持js
localStorage sessionStorage用法:
在客戶端存儲數據
HTML5 提供了兩種在客戶端存儲數據的新方法:
localStorage - 沒有時間限制的數據存儲
sessionStorage - 針對一個 session 的數據存儲
之前,這些都是由 cookie 完成的。但是 cookie 不適合大量數據的存儲,因為它們由每個對伺服器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。
在 HTML5 中,數據不是由每個伺服器請求傳遞的,而是只有在請求時使用數據。它使在不影響網站性能的情況下存儲大量數據成為可能。
對於不同的網站,數據存儲於不同的區域,並且一個網站只能訪問其自身的數據。
HTML5 使用 JavaScript 來存儲和訪問數據。
localStorage 方法
localStorage 方法存儲的數據沒有時間限制。第二天、第二周或下一年之後,數據依然可用。
如何創建和訪問 localStorage:
實例
<script type="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
</script>
下面的例子對用戶訪問頁面的次數進行計數:
實例
<script type="text/javascript">
if (localStorage.pagecount)
{
localStorage.pagecount=Number(localStorage.pagecount) +1;
}
else
{
localStorage.pagecount=1;
}
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>
sessionStorage 方法
sessionStorage 方法針對一個 session 進行數據存儲。當用戶關閉瀏覽器窗口後,數據會被刪除。
如何創建並訪問一個 sessionStorage:
實例
<script type="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
</script>
下面的例子對用戶在當前 session 中訪問頁面的次數進行計數:
實例
<script type="text/javascript">
if (sessionStorage.pagecount)
{
sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
}
else
{
sessionStorage.pagecount=1;
}
document.write("Visits "+sessionStorage.pagecount+" time(s) this session.");
</script>
⑽ android webview 怎麼開啟或關閉硬體加速
Google Android官方文檔中對WebView介紹如下:
HTML5Videosupport
accelerationturnedon.
所以安卓要開啟硬體加速只需要在清單文件或者WebViewActivity中配置即可:
四種級別:
Application級別:<applicationandroid:hardwareAccelerated="true"...>
Activity級別:<activityandroid:hardwareAccelerated="false"...>
Window級別:getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
View級別:
mView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
