Android开发学习笔记:WebView 一
??? WebView(網(wǎng)絡(luò)視圖)能加載顯示網(wǎng)頁,可以將其視為一個(gè)瀏覽器。它使用了WebKit渲染引擎加載顯示網(wǎng)頁,實(shí)現(xiàn)WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實(shí)例化WebView組件:WebView webView = new WebView(this);
2.調(diào)用WebView的loadUrl()方法,設(shè)置WevView要顯示的網(wǎng)頁:
? 互聯(lián)網(wǎng)用:webView.loadUrl("http://www.google.com");?
? 本地文件用:webView.loadUrl("file:///android_asset/XX.html");?本地文件存放在:assets?文件中
3.調(diào)用Activity的setContentView(?)方法來顯示網(wǎng)頁視圖
4.用WebView點(diǎn)鏈接看了很多頁以后為了讓W(xué)ebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點(diǎn)擊系統(tǒng)回退剪鍵,整個(gè)瀏覽器會(huì)調(diào)用finish()而結(jié)束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加權(quán)限,否則會(huì)出現(xiàn)Web page not available錯(cuò)誤。
??<uses-permission?android:name="android.permission.INTERNET"?/>
下面是具體例子:
MainActivity.java
1 package com.android.webview.activity; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.KeyEvent; 6 import android.webkit.WebView; 7 8 public class MainActivity extends Activity { 9 private WebView webview; 10 @Override 11 public void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 //實(shí)例化WebView對象 14 webview = new WebView(this); 15 //設(shè)置WebView屬性,能夠執(zhí)行Javascript腳本 16 webview.getSettings().setJavaScriptEnabled(true); 17 //加載需要顯示的網(wǎng)頁 18 webview.loadUrl("http://www.51cto.com/"); 19 //設(shè)置Web視圖 20 setContentView(webview); 21 } 22 23 @Override 24 //設(shè)置回退 25 //覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法 26 public boolean onKeyDown(int keyCode, KeyEvent event) { 27 if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 28 webview.goBack(); //goBack()表示返回WebView的上一頁面 29 return true; 30 } 31 return false; 32 }
?
?
在AndroidManifest.xml文件中的17行添加權(quán)限
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.android.webview.activity" 4 android:versionCode="1" 5 android:versionName="1.0"> 6 <uses-sdk android:minSdkVersion="10" /> 7 8 <application android:icon="@drawable/icon" android:label="@string/app_name"> 9 <activity android:name=".MainActivity" 10 android:label="@string/app_name"> 11 <intent-filter> 12 <action android:name="android.intent.action.MAIN" /> 13 <category android:name="android.intent.category.LAUNCHER" /> 14 </intent-filter> 15 </activity> 16 </application> 17 <uses-permission android:name="android.permission.INTERNET"/> 18 </manifest>
?
?
效果圖:
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實(shí)例化WebView
3、調(diào)用WebView的loadUrl( )方法,設(shè)置WevView要顯示的網(wǎng)頁
4、為了讓W(xué)ebView能夠響應(yīng)超鏈接功能,調(diào)用setWebViewClient( )方法,設(shè)置? WebView視圖
5、用WebView點(diǎn)鏈接看了很多頁以后為了讓W(xué)ebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點(diǎn)擊系統(tǒng)回退剪鍵,整個(gè)瀏覽器會(huì)調(diào)用finish()而結(jié)束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加權(quán)限,否則出現(xiàn)Web page not available錯(cuò)誤。
<uses-permission android:name="android.permission.INTERNET"/>
?下面是具體的例子:
MainActivity.java
1 package com.android.webview.activity; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.KeyEvent; 6 import android.webkit.WebView; 7 import android.webkit.WebViewClient; 8 9 public class MainActivity extends Activity { 10 private WebView webview; 11 @Override 12 public void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.main); 15 webview = (WebView) findViewById(R.id.webview); 16 //設(shè)置WebView屬性,能夠執(zhí)行Javascript腳本 17 webview.getSettings().setJavaScriptEnabled(true); 18 //加載需要顯示的網(wǎng)頁 19 webview.loadUrl("http://www.51cto.com/"); 20 //設(shè)置Web視圖 21 webview.setWebViewClient(new HelloWebViewClient ()); 22 } 23 24 @Override 25 //設(shè)置回退 26 //覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法 27 public boolean onKeyDown(int keyCode, KeyEvent event) { 28 if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 29 webview.goBack(); //goBack()表示返回WebView的上一頁面 30 return true; 31 } 32 return false; 33 } 34 35 //Web視圖 36 private class HelloWebViewClient extends WebViewClient { 37 @Override 38 public boolean shouldOverrideUrlLoading(WebView view, String url) { 39 view.loadUrl(url); 40 return true; 41 } 42 } 43 }
?
main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 > 7 <WebView 8 android:id="@+id/webview" 9 android:layout_width="fill_parent" 10 android:layout_height="fill_parent" 11 /> 12 </LinearLayout>
?
在AndroidManifest.xml文件中的17行添加權(quán)限
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.android.webview.activity" 4 android:versionCode="1" 5 android:versionName="1.0"> 6 <uses-sdk android:minSdkVersion="10" /> 7 8 <application android:icon="@drawable/icon" android:label="@string/app_name"> 9 <activity android:name=".MainActivity" 10 android:label="@string/app_name"> 11 <intent-filter> 12 <action android:name="android.intent.action.MAIN" /> 13 <category android:name="android.intent.category.LAUNCHER" /> 14 </intent-filter> 15 </activity> 16 </application> 17 <uses-permission android:name="android.permission.INTERNET"/> 18 </manifest>
?
效果圖:
本文出自 “IT的點(diǎn)點(diǎn)滴滴” 博客,出處http://liangruijun.blog.51cto.com/3061169/647456
轉(zhuǎn)載于:https://www.cnblogs.com/tonglingqijie/p/4689205.html
總結(jié)
以上是生活随笔為你收集整理的Android开发学习笔记:WebView 一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为何美国电影《X战警黑凤凰》,口碑不好
- 下一篇: 设计模式之资料摘录