Android開發(fā)學(xué)習(xí)筆記 淺談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
package com.android.webview.activity; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; public class MainActivity extends Activity { private WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //實(shí)例化WebView對(duì)象 webview = new WebView(this); //設(shè)置WebView屬性,能夠執(zhí)行Javascript腳本 webview.getSettings().setJavaScriptEnabled(true); //加載需要顯示的網(wǎng)頁 webview.loadUrl("http://www.dbjr.com.cn/"); //設(shè)置Web視圖 setContentView(webview); } @Override //設(shè)置回退 //覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法 public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); //goBack()表示返回WebView的上一頁面 return true; } return false; }
在AndroidManifest.xml文件中的17行添加權(quán)限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.webview.activity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> </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
package com.android.webview.activity; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webview = (WebView) findViewById(R.id.webview); //設(shè)置WebView屬性,能夠執(zhí)行Javascript腳本 webview.getSettings().setJavaScriptEnabled(true); //加載需要顯示的網(wǎng)頁 webview.loadUrl("http://www.dbjr.com.cn/"); //設(shè)置Web視圖 webview.setWebViewClient(new HelloWebViewClient ()); } @Override //設(shè)置回退 //覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法 public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); //goBack()表示返回WebView的上一頁面 return true; } return false; } //Web視圖 private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
在AndroidManifest.xml文件中的17行添加權(quán)限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.webview.activity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
效果圖:
本文出自 “IT的點(diǎn)點(diǎn)滴滴” 博客
相關(guān)文章
Android.mk文件中添加第三方j(luò)ar文件的方法
這篇文章主要介紹了Android.mk文件中添加第三方j(luò)ar文件及引用第三方j(luò)ar包的方法,需要的朋友可以參考下2018-01-01退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法
這篇文章主要介紹了退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法,詳細(xì)分析了Android退出時(shí)清除activity的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04Android自定義控件實(shí)現(xiàn)下拉刷新效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android開發(fā)中比較耗時(shí)的一些操作小結(jié)
這篇文章主要介紹了Android開發(fā)中比較耗時(shí)的一些操作小結(jié),本文根據(jù)實(shí)際開發(fā)經(jīng)驗(yàn)總結(jié)了6條比較耗時(shí)的編程操作,請(qǐng)大家注意下,需要的朋友可以參考下2015-06-06Android中使用ShareSDK集成分享功能的實(shí)例代碼
下面小編就為大家分享一篇Android中使用ShareSDK集成分享功能的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01android LabelView實(shí)現(xiàn)標(biāo)簽云效果
這篇文章主要為大家詳細(xì)介紹了android LabelView實(shí)現(xiàn)標(biāo)簽云效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android實(shí)現(xiàn)數(shù)字跳動(dòng)效果的TextView方法示例
數(shù)字跳動(dòng)效果相信大家應(yīng)該都見過,在開發(fā)加上這種效果后會(huì)讓ui交互看起來非常不錯(cuò),所以下面這篇文章主要給大家介紹了Android實(shí)現(xiàn)數(shù)字跳動(dòng)的TextView的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04