成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hybrid App 開發初探:使用 WebView 裝載頁面

移動開發
Hybrid App 是混合模式應用的簡稱,兼具 Native App 和 Web App 兩種模式應用的優勢,開發成本低,擁有 Web 技術跨平臺特性。目前大家所知道的基于中間件的移動開發框架都是采用的 Hybrid 開發模式,例如國外的 PhoneGap、Titanium、Sencha,還有國內的 AppCan、Rexsee 等等。Hybrid App 開發模式正在被越來越多的公司和開發者所認同,相信將來會成為主流的移動應用開發模式。

Hybrid App 是混合模式應用的簡稱,兼具 Native App 和 Web App 兩種模式應用的優勢,開發成本低,擁有 Web 技術跨平臺特性。目前大家所知道的基于中間件的移動開發框架都是采用的 Hybrid 開發模式,例如國外的 PhoneGap、Titanium、Sencha,還有國內的 AppCan、Rexsee 等等。Hybrid App 開發模式正在被越來越多的公司和開發者所認同,相信將來會成為主流的移動應用開發模式。

Hybrid App 融合 Web App 的原理就是嵌入一個WebView組件,可以在這個組件中載入頁面,相當于內嵌的瀏覽器,代碼如下:

  1. import android.app.Activity; 
  2. import android.os.Bundle; 
  3. import android.webkit.WebSettings; 
  4. import android.webkit.WebView; 
  5.   
  6. public class AActivity extends Activity{ 
  7.       
  8.     @Override 
  9.     public void onCreate(Bundle savedInstanceState) { 
  10.         super.onCreate(savedInstanceState); 
  11.         // 創建WebView 
  12.         WebView webView= new WebView(this); 
  13.         // 切換到內容視圖 
  14.         setContentView(webView); 
  15.         // 獲取WebView配置 
  16.         WebSettings ws = webView.getSettings(); 
  17.         // 啟用JavaScript 
  18.         ws.setJavaScriptEnabled(true); 
  19.         // 載入assets目錄下的一個頁面 
  20.         webView.loadUrl("file:///android_asset/www/BoBox/index.html"); 
  21.     } 

還有另一種引入方式是在布局文件中添加 WebView 組件,代碼如下:

  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:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:id="@+id/webview"  
  11.         />  
  12.            
  13. </LinearLayout> 
  1. import android.app.Activity; 
  2. import android.os.Bundle; 
  3. import android.webkit.WebSettings; 
  4. import android.webkit.WebView; 
  5.   
  6. public class BActivity extends Activity{ 
  7.   
  8.     @Override 
  9.     public void onCreate(Bundle savedInstanceState) { 
  10.         super.onCreate(savedInstanceState); 
  11.         setContentView(R.layout.webview); 
  12.         // 查找WebView 
  13.         WebView webView = (WebView) findViewById(R.id.webview); 
  14.         // 獲取WebView配置 
  15.         WebSettings ws = webView.getSettings(); 
  16.         // 啟用JavaScript 
  17.         ws.setJavaScriptEnabled(true); 
  18.         // 在載入assets目錄下的一個頁面 
  19.         webView.loadUrl("file:///android_asset/www/index.html"); 
  20.     } 

WebView 還有一個非常重要的方法——addJavascriptInterface,可以用來實現 Java 程序和 JavaScript 程序的相互調用,代碼如下:

  1. webView.addJavascriptInterface(new Object(){ 
  2.     public void clickOnAndroid(){ 
  3.         mHandler.post(new Runnable(){ 
  4.             public void run(){ 
  5.                 webView.loadUrl("javascript:wave()"); 
  6.             } 
  7.         }); 
  8.     } 
  9. }, "demo"); 

頁面代碼如下:

  1. <script> 
  2.     function wave() { 
  3.         document.getElementById("id").innerHTML = "Hello World!"
  4.     } 
  5. </script> 
  6. </head> 
  7. <body> 
  8.     <div> 
  9.         <a href="#" id="demo" onclick="window.demo.clickOnAndroid()">Click Me</a> 
  10.     </div> 
  11. </body> 
  12. </html> 

這樣,當你點擊頁面上 Click Me 按鈕的時候就會調用 Java 代碼中的 clickOnAndroid 函數,clickOnAndroid 函數中又調用頁面中的 wave 方法。需要注意的是:這個接口在 Android 2.3 版本的模擬器中運行會導致 WebView 崩潰,目前還沒有修復。這是一個非常簡單的演示 Java 和 JavaScript 相互調用的例子,在實際應用中可以在頁面調用的 clickOnAndroid 函數中再調用攝像頭、通訊錄、通知提醒等設備功能。

責任編輯:閆佳明 來源: cnblogs
相關推薦

2014-12-17 10:29:59

混合應用Hybrid App開發實戰

2014-12-17 10:12:06

HybridAppFramewor頁面布局

2013-03-19 09:08:42

Hybrid App

2013-12-16 15:07:59

NativeHybrid開發移動

2014-12-17 10:43:01

Hybrid App平臺開發

2014-12-18 13:40:16

Web AppHybrid AppNative App

2014-05-21 15:13:40

AppCanHybrid

2013-09-04 15:07:06

移動應用設計

2014-11-28 10:31:07

Hybrid APP

2011-08-23 17:52:39

LUAWeb 開發

2012-05-30 09:22:56

Hybrid App助HTML5JavaScript

2014-09-22 15:14:04

2010-08-04 10:17:17

Android開發WebView組件

2012-06-05 09:06:52

HTML5Native AppHybrid App

2014-03-24 11:17:53

Hybrid App混合應用

2012-06-28 15:47:31

Web AppHybrid AppHTML5

2011-06-16 10:25:29

AndroidAIR

2014-12-17 14:21:56

Hybrid App框架工具

2012-05-28 14:13:26

HTML5Web AppNative App

2013-09-09 17:53:03

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久宅男 | 国产在线精品一区二区三区 | 欧美久久久久久久久中文字幕 | 国产黄色电影 | 天天看天天操 | 中文精品视频 | 日韩欧美中文字幕在线视频 | 欧美高清性xxxxhdvideosex | 亚洲三区视频 | 成人福利片 | 久久久久91 | 毛片在线免费 | 日韩精品一区在线 | 日韩精品久久一区二区三区 | 国产亚洲一区二区三区 | 综合色在线 | 成人羞羞国产免费视频 | 操久久| 午夜一区二区三区 | 欧美国产日韩在线 | 亚洲视频国产视频 | 天天玩天天操天天干 | 中文字幕动漫成人 | 午夜不卡一区二区 | 永久看片 | 九九综合| 九九热九九 | 秋霞a级毛片在线看 | 毛片网在线观看 | 成人国产午夜在线观看 | 亚洲一区 | 久草在线 | 春色av| 天堂中文在线观看 | 交专区videossex农村 | 欧美片网站免费 | 秋霞电影一区二区三区 | 天天干天天爽 | 亚洲网在线 | 99精品国产一区二区三区 | 久久久久久国产精品 |