歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中Webview使用自定義的JavaScript進行回調

先說為什麼需要討論這個問題。

現在很多的手機應用,都可能會直接嵌入一個web頁面。這樣做的好處:一個是功能更新方便,維護起來容易,只需要維護服務器的頁面即可,不需要更新客戶端;另一個是功能通用,不僅Android可以用,ios也可以用,symbian也可以直接用。

那為什麼現在很多手機應用並不做成web方式的呢?原因很多。一個是現階段web方式展現能力相對較弱,如果對於應用的美觀程度要求比較高,就無法使用web方式;一個是web方式速度相對較慢,用戶體驗會受一些影響;一個是現階段流量還是相對寶貴,web方式流量相對較大;還有一個就是有一些功能無法使用web方式實現(關於這一點,現在又很多開源的項目可以實現手機的一些硬件功能,比如拍照啊,獲取通訊錄啊,都是可以的,感興趣的可以搜索一下phoneGap。但是從現有的反饋來看,速度較慢,體驗較差)。

基於以上的原因,現在很多項目會把一部分功能做成web方式的,一部分功能用其它控件來寫。這就需要web頁面與其它控件做一些交互。如何交互呢,就是利用自定義的javascript。

下面虛擬一個場景。

現在有一個功能,展現當前用戶的好友列表,好友列表頁是web方式的,點擊某好友的頭像以後,進入該好友的詳情頁面,而這個頁面呢,由於某些原因,沒做成web方式的。

假設好友列表頁是UserListActivity,包含一個webview。好友詳情頁面是UserDetailActivity,包含很多控件和業務邏輯。

我們以id來唯一標示用戶。好友列表頁中,點擊每一個好友頭像,都會調用:

onclick="javascript:android.user('1')"

類似這樣的js語句。因本文主要介紹android,而不是web開發內容,所以具體不再詳述,熟悉web開發的同學很容易理解。

我們現在需要做的,就是顯示用戶列表頁面,然後在用戶點擊頭像以後,響應具體的js請求,跳到該好友詳細頁面。

下面看看大概的實現方法。

默認情況下,在WebView中是不能使用javascript的。可以通過下面的代碼:

 

  1. WebView myWebView = (WebView) findViewById(R.id.webview);  
  2.   
  3. WebSettings webSettings = myWebView.getSettings();  
  4.   
  5. webSettings.setJavaScriptEnabled(true);  

Copyright © Linux教程網 All Rights Reserved