成人免费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

2017-01-15 18:32:39

Openresty架構性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女福利网站 | 一区二区三区高清 | 作爱视频免费看 | 免费色网址 | 成人不卡在线 | 午夜国产在线 | 精品在线一区 | 欧美一级淫片007 | 国内91在线 | 国产在线一区二区 | 黄色毛片黄色毛片 | 国产精品成av人在线视午夜片 | 国产乱码精品一区二区三区五月婷 | 国产乱码精品一区二区三区中文 | 一级国产精品一级国产精品片 | 国产精品色 | 亚洲最大的成人网 | 久久久久国产精品午夜一区 | 亚洲成人一区二区 | 一起操网站 | 欧美一区二区在线免费观看 | 特级做a爰片毛片免费看108 | 天堂亚洲网| 欧美不卡一区二区三区 | 久久免费精品 | 久优草| av高清毛片 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 理论片87福利理论电影 | 在线观看中文字幕亚洲 | 紧缚调教一区二区三区视频 | 精品视频一区在线 | 亚洲九九色 | 国产亚洲精品区 | 国产98色在线 | 日韩 | 狠狠干av | 亚洲国产成人av好男人在线观看 | 欧美成人一区二免费视频软件 | 天天操天天拍 | 天天爽一爽 | 久久久久久成人 |