安卓APP_ 控件(11)webView —— 简单应用:显示网页
摘自:安卓APP_ 控件(11)webView —— 簡單應用:顯示網頁
作者:丶PURSUING
發布時間: 2021-05-11 11:50:52
網址:https://blog.csdn.net/weixin_44742824/article/details/116602469
目錄
- 簡單了解
- 使用
- 一、配置文件manifest中添加兩個權限
- 二、添加webView控件
- 完整源碼
簡單了解
Android WebView是一個特殊的View,它能用來顯示網頁,這個WebView類可以被用來在app中僅僅顯示一張在線的網頁,當然還可以用來開發瀏覽器。
WebView內部實現是采用渲染引擎(WebKit)來展示view的內容,提供網頁前進后退、網頁放大、縮小、搜索等功能。
使用
注意:在此之前,先要確保你的安卓虛擬機能夠聯網,因為之前做過嘗試,不穩定故這里不做展開,可以拉到真機中去調試。
一、配置文件manifest中添加兩個權限
聯網權限
<uses-permission android:name="android.permission.INTERNET" />- 1
明文支持
android:usesCleartextTraffic="true"- 1
從Android 9.0(API級別28)開始,默認情況下禁用明文支持,因此http的url均無法在webview中加載。
如下圖
二、添加webView控件
在MainActivity中添加:
WebView webView = findViewById(R.id.webView);webView.loadUrl("http://www.baidu.com");- 1
- 2
如下圖:
這時候運行已經可以看到百度界面了,點一下返回按鍵,看到的是空白界面,實際上是加載了系統自帶的瀏覽器。
更多細節見源碼
完整源碼
因為虛擬機的聯網原因,放到真機中調試,故這里沒有做結果的演示。就是輸入網址http://www.baidu.com后點擊確定即可跳轉
public class MainActivity extends AppCompatActivity {WebView webView;EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);webView = findViewById(R.id.webView);//系統默認會通過手機瀏覽器打開網頁,為了能夠直接通過WebView顯示網頁,則必須設置webView.setWebViewClient(new WebViewClient());editText = findViewById(R.id.editText);/*設置editText的回車事件:直接閃退?editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {String string = editText.getText().toString();webView.loadUrl(string);//ENTERreturn (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);}});*/}//按鍵響應事件public void enterFunc(View view) {String string = editText.getText().toString();webView.loadUrl(string);} }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
activity_main.xml
按鍵點擊事件
設置editText的回車事件,(點擊回車會閃退?),故上面用了button來代替。
//設置editText的回車事件:直接閃退?editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {String string = editText.getText().toString();webView.loadUrl(string);//ENTERreturn (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);}}); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
總結
以上是生活随笔為你收集整理的安卓APP_ 控件(11)webView —— 简单应用:显示网页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用vscode作为golang开发环境
- 下一篇: [国嵌笔记][036][关闭MMU和CA