国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android WebView的詳解及實例

2019-10-22 18:32:22
字體:
來源:轉載
供稿:網友

Android WebView的詳解

      Android WebView在android平臺上是一個特殊的View, 他能用來顯示網頁,這個類可以被用來在你的app中僅僅顯示一張在線的網頁,還可以用來開發瀏覽器。

    在Android手機中內置了一款高性能webkit內核瀏覽器,在SDK中封裝為一個叫做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內核)。 

    在開發過程中應該注意幾點: 

    1.AndroidManifest.xml中必須使用許可"android.permission.INTERNET",否則會出Web page not available錯誤。

    2.如果訪問的頁面中有javascript,則webview必須設置支持Javascript。  

   webview.getSettings().setJavaScriptEnabled(true); 

    3.如果頁面中鏈接,如果希望點擊鏈接繼續在當前browser中響應,而不是新開Android的系統browser中響應該鏈接,必須覆蓋 webview的WebViewClient對象

webView.setWebViewClient(new WebViewClient() {   @Override   public boolean shouldOverrideUrlLoading(WebView view, String url) {     // TODO Auto-generated method stub     view.loadUrl(url);     return true;   } } ); 

4.如果不做任何處理,瀏覽網頁,點擊系統“Back”鍵,整個Browser會調用finish()而結束自身,如果希望瀏覽的網 頁回退而不是推出瀏覽器,需要在當前Activity中處理并消費掉該Back事件。

@Override   public boolean onKeyDown(int keyCode, KeyEvent event) {     // TODO Auto-generated method stub     if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {       webView.goBack();       return true;     }     return super.onKeyDown(keyCode, event);    } 

下一步讓我們來了解一下android中webview是如何支持javascript自定義對象的,在w3c標準中js有 window,history,document等標準對象,同樣我們可以在開發瀏覽器時自己定義我們的對象調用手機系統功能來處理,這樣使用js就可以 為所欲為了。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title>WebView</title>   <script language="javascript">   <!-- function click() {   Android.onClick("hello");   } --> </script>   </head>   <body>   <a href="http://www.baidu.com" rel="external nofollow" onclick="click()">點擊</a>   </body>   </html> 

 可以看到,HTML代碼中的超鏈接響應一個點擊事件,會執行javascript中的click()方法,因為通過webView.addJavascriptInterface()方法新建了一個對象,并將此對象和javascript對象綁定了,javascript對象的引用即為"Android",所以在HTML中的click方法執行時會調用新建的對象中的onClick()方法。這樣就實現了在javascript代碼中調用Java代碼.

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祁阳县| 莒南县| 宁安市| 武鸣县| 盐池县| 江北区| 贵定县| 石渠县| 远安县| 年辖:市辖区| 成安县| 吉隆县| 辽阳县| 阳朔县| 水城县| 邯郸县| 讷河市| 枣强县| 南陵县| 龙江县| 黄龙县| 抚州市| 交城县| 高雄县| 牡丹江市| 临沧市| 石狮市| 鹿邑县| 松潘县| 阿拉善右旗| 仙桃市| 团风县| 孟津县| 灌云县| 连城县| 黔西| 武功县| 西充县| 新余市| 静安区| 淮南市|