① 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有哪幾種方式
WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET" />
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>
③ Android的WebView有哪些坑
都是坑
WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html");本地文件存放在:assets文件中
3.調用Activity的setContentView()方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>
本文出自 「IT的點點滴滴」 博客,請務必保留此出處http://liangruijun.blog.51cto.com/3061169/647456
④ webview頁面導航與android原生導航重疊怎麼辦
這個估計應該是屏幕刷新的問題。。。
剛進去時有重貼現象,點擊幾下後又恢復正常,說明LCD沒有及時刷新,又或者LCD刷新時,銷毀的系統CPU資源較多,造成系統繁忙,出現的卡屏現象,都有可能。。。
⑤ 安卓 webview怎麼使用,求高手
1)修改新建項目的res\Iayout目錄下的布局文件main.xml,將默認添加的TextView組件刪除,然後添加一個WebView組件2)在MainActivity的onCreate()方法中,首先獲取布局管理器中添加的WebView組件,然後創建一個字元串構建器,將要顯示的HTML
⑥ Android System Webview是什麼東西
安卓app中用於顯示網頁內容的組件,更不更無所謂別卸載了就行;
它是chrome看視頻以及一些視覺元素會用到,有人反應更新後chrome沒法看視頻了,所以升不升無所謂;
但千萬別刪,這個程序刪除以後手機上的瀏覽器打開就會停止。
⑦ 版主求助啊 Android webview中百度地圖不顯示,空白,在線等
下面是要顯示的HTML 在網路官方下載的
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map..com/api?v=2.0&ak=Ow1yfpNXULSrlf9RVpdtmRuW"></script>
<title>添加普通標注點</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 網路地圖API功能
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14);
var marker1 = new BMap.Marker(new BMap.Point(116.384, 39.925)); // 創建標注
map.addOverlay(marker1); // 將標注添加到地圖中
//創建信息窗口
var infoWindow1 = new BMap.InfoWindow("普通標注");
marker1.addEventListener("click", function(){this.openInfoWindow(infoWindow1);});
//創建小狐狸
var pt = new BMap.Point(116.417, 39.909);
var myIcon = new BMap.Icon("fox.gif", new BMap.Size(300,157));
var marker2 = new BMap.Marker(pt,{icon:myIcon}); // 創建標注
map.addOverlay(marker2); // 將標注添加到地圖中
//讓小狐狸說話(創建信息窗口)
var infoWindow2 = new BMap.InfoWindow("<p style='font-size:14px;'>哈哈,你看見我啦!我可不常出現哦!</p><p style='font-size:14px;'>趕快查看源代碼,看看我是如何添加上來的!</p>");
marker2.addEventListener("click", function(){this.openInfoWindow(infoWindow2);});
</script>
復制代碼
下面是我的activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_biotope);
findViewById();
mWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = mWebView.getSettings();
//啟用資料庫
webSettings.setDatabaseEnabled(true);
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
//啟用地理定位
webSettings.setGeolocationEnabled(true);
//設置定位的資料庫路徑
webSettings.setGeolocationDatabasePath(dir);
//最重要的方法,一定要設置,這就是出不來的主要原因
webSettings.setDomStorageEnabled(true);
mWebView.getSettings().setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mWebView .setScrollbarFadingEnabled( true );
mWebView .setScrollBarStyle(View. SCROLLBARS_INSIDE_OVERLAY );
mWebView.setWebChromeClient(new WebChromeClient(){
//配置許可權(同樣在WebChromeClient中實現)
public void (String origin,
GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
super.(origin, callback);
}
});
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{ // 重寫此方法表明點擊網頁裡面的鏈接還是在當前的webview里跳轉,不跳到瀏覽器那邊
view.loadUrl(url);
return true;
}});
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT | WebSettings.LOAD_CACHE_ELSE_NETWORK);
//0526 cyf update
Map<String,String> map=new HashMap<String,String>();
map.put("shopSid", "109449");
// mWebView.loadUrl(Contant.NEARBY);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// mWebView.loadUrl(Contant.NEARBY);
mWebView.loadUrl("http://192.168.0.105:8080/webjs/test.html");
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
swipeLayout.setOnRefreshListener(this);
swipeLayout.setColorScheme(R.color.holo_blue_bright, R.color.holo_green_light, R.color.holo_orange_light,
R.color.holo_red_light);
}
@Override
protected void findViewById() {
super.findViewById();
mBack = (ImageView)findViewById(R.id.top_back);
mTitle = (TextView)findViewById(R.id.top_title);
mTitle.setText(R.string.tab_nearby);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
super.onClick(v);
switch (v.getId()) {
case R.id.top_back:
finish();
break;
default:
break;
}
}
@Override
public void onRefresh() {
// TODO Auto-generated method stub
mWebView.reload();
swipeLayout.setRefreshing(false);
}
}
⑧ 安卓系統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系統設置中如果強制停止某些應用,可能會造成程序出錯,閃退,死機,重啟等後果,不過某些應用不給退出的情況下只能用這種方式