四種途徑將HTML5 web應用變成android應用

作為下一代的網頁語言,HTML5擁有很多讓人期待已久的新特性。HTML5的優勢之一在于能夠實現跨平臺游戲編碼移植,現在已經有很多公司在移動設備上使用HTML5技術。隨著HTML5跨平臺支持的不斷增強和智能手機的迅速普,HTML5技術有著非常好的發展前景,甚至有人預言HTML5將引燃移動平臺游戲開發技術的新革命。

越來越多的開發者熱衷于使用html5+JavaScript開發移動Web App。不過,HTML5 Web APP的出現能否在未來取代移動應用,就目前來說,還是個未知數。一方面,用戶在使用習慣上,不喜歡在瀏覽器上輸入復雜的網址;另一方面,Html5 Web App 存放在服務器端,在每次使用時需要進行數據傳遞,會造成流量浪費。有些開發者不想接觸復雜的JAVA代碼,那么,有什么辦法,既可以使用HTMl5開發應用,又可以將其簡單封裝成APK文件呢?

一、Android SDK中的WebView

1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);

2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:

互聯網用:webView.loadUrl("http://www.***.com");

本地文件用:webView.loadUrl(file:///android_asset/XX.html); 本地文件存放在:assets 文件中

3.調用Activity的setContentView()方法來顯示網頁視圖

4.用WebView點鏈接看了很多頁以后為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面

5.需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。

<uses-permission android:name="android.permission.INTERNET" />

缺點:如果是載入的是普通網頁,沒有什么問題,但如果是html5,封裝后,在android2.3以上才能正常訪問,android2.2及以下,SDK中的WebView還沒完全支持HTML5

下面是具體例子:

MainActivity.java

package com.android.webview.activity;

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.webkit.WebView;

public class MainActivity extends Activity {

private WebView webview;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//實例化WebView對象

webview = new WebView(this);

//設置WebView屬性,能夠執行Javascript腳本

webview.getSettings().setJavaScriptEnabled(true);

//加載需要顯示的網頁

webview.loadUrl("http://www.***.cn/");

//設置Web視圖

setContentView(webview);

}

@Override

//設置回退

//覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法

public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {

webview.goBack(); //goBack()表示返回WebView的上一頁面

return true;

}

return false;

}

在AndroidManifest.xml文件中添加權限

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android=http://schemas.android.com/apk/res/android

package="com.android.webview.activity"

android:versionCode="1"

android:versionName="1.0">

<uses-sdk android:minSdkVersion="10" />

<application android:icon=“@drawable/icon” android:label="@string/app_name">

<activity android:name=".MainActivity"

android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

<uses-permission android:name="android.permission.INTERNET"/>

</manifest>

二、使用PhoneGap

PhoneGap是一個用基于HTML,CSS和JavaScript的,創建移動跨平臺移動應用程序的快速開發平臺。它使開發者能夠利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手機的核心功能——包括地理定位,加速器,聯系人,聲音和振動等,此外PhoneGap擁有豐富的插件,可以以此擴展無限的功能。PhoneGap是免費的,但是它需要特定平臺提供的附加軟件,例如iPhone的iPhone SDK,Android的Android SDK等,

詳細方法請見:http://phonegap.com/start#android

優點:在Eclipse中加入SDK,編程自由,完美適應不同設備屏幕大小,適合高手使用。

缺點:沒有使用布局,直接加載網頁,不能添加廣告。

三、使用Rexsee在線生成(http://www.rexsee.com)

Rexsee是開源的Android開發平臺,支持開發者以標準化Web開發模式,使用HTML5、CSS3、Javascript快速實現移動應用。會HTML就會Android。你要做的只是將做好的HTML5 應用上傳到Rexsee服務器,很快,會編譯成標準的APK安裝文件。

優點:一鍵生成,適學普通人使用

缺點:直接封裝,無法添加廣告。

四、appMobi Html5 XDK 在線生成(使用了PhoneGap插件http://www.appmobi.com/)

一個Google chrome插件,安裝后,建立新工程,然后將已開發的HTML5應用放至指定文件夾中,即可直接封裝成APK文件,使用了PhoneGap SDK,還提供實時預覽,這是其它方法無法做到的事情。

文章來自:HTML5技術網http://www.31358.cn/html5_study/766.html

轉載于:https://www.cnblogs.com/hnhsl/p/3739336.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375869.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

操作系統上機作業--根據萊布尼茲級數計算PI(2)(多線程)

pi2.c: 使用N個線程根據萊布尼茲級數計算PI ? 與上一題類似&#xff0c;但本題更加通用化&#xff0c;能適應N個核心&#xff0c;需要使用線程參數來實現 ? 主線程創建N個輔助線程 ? 每個輔助線程計算一部分任務&#xff0c;并將結果返回 ? 主線程等待N個輔助線程…

html 16進制 轉換成字符串,js 字符串和16進制的互相轉換

字符串轉16進制function strToHexCharCode(str) {if(str "")return "";var hexCharCode [];hexCharCode.push("0x");for(var i 0; i < str.length; i) {hexCharCode.push((str.charCodeAt(i)).toString(16));}return hexCharCode.join(&qu…

數組以及冒泡排序

數組 1、概念&#xff1a;可以幫我一次聲明多個同類型的變量&#xff0c;這些變量再內存中是連續存儲的。 2、聲明語法&#xff1a;數據類型[] 數組名 new 數據類型[數組長度] 數組長度&#xff1a;一次要聲明的同類型的變量個數。是在定義這個數組的時候就確定了&#xf…

jQuery觸發a標簽的點擊事件無效

1 <a id"workFrame" href"pages/work.html" target"FrameBox">首頁</a> 2 3 $("#workFrame").tigger("click"); 上述的代碼&#xff0c;其實挺正常的&#xff0c;但是怎么也觸發不了a標簽的cli…

操作系統上機作業--多線程排序

sort.c: 多線程排序 ? 主線程創建一個輔助線程 ? 主線程使用選擇排序算法對數組的前半部分排序 ? 輔助線程使用選擇排序算法對數組的后半部分排序 ? 主線程等待輔助線程運行結束后,使用歸并排序算法歸并數組的前半部分和后半部分 實現思路&#xff1a; ARRAY_CO…

jdk5下載鏈接

查看jdk版本 java -versionJDK下載 最新版本http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJDK下載 版本1.5.22http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html#jdk-1.5.0_22-oth-JPR JDK…

html的細節優化,網站頁面優化細節詳解

原標題&#xff1a;網站頁面優化細節詳解SEO頁面優化是繼SEO結構優化之后&#xff0c;另一個重要優化地方;頁面標題在每個頁面中的關鍵位置&#xff0c;出現目標關鍵詞&#xff0c;這是我們做頁面優化的基礎思路&#xff0c;關鍵詞位置&#xff0c;都有哪些呢?第一個是關鍵位置…

突擊優化算法!

Matlab語言可以與C/C語言轉換或調用。 Matlab語句&#xff1a;load name 把name中文件的所有變量載入到工作空間中。save name 保存工作空間的變量到name.mat中。 cholesky分解把一個正定矩陣分為一個下三角矩陣和它轉置矩陣的乘積。 兩種創立符號函數的方法&#xff1a;sym函數…

操作系統上機作業--使用條件變量解決生產者、計算者、消費者問題(多線程)

pc1.c: 使用條件變量解決生產者、計算者、消費者問題 /* ? 系統中有3個線程&#xff1a;生產者、計算者、消費者 ? 系統中有2個容量為4的緩沖區&#xff1a;buffer1、buffer2 ? 生產者生產a、b、c、‘d、e、f、g、h八個字符&#xff0c;放入到buffer1 ? 計算者從b…

淘寶代碼和html區別,taobao.html

taobao主題市場女裝 /男裝 /內衣 >鞋靴 /箱包 /配件 >童裝玩具 /孕產 /用品 >家電 /數碼 /手機 >女裝 /男裝 /內衣 >鞋靴 /箱包 /配件 >童裝玩具 /孕產 /用品 >家電 /數碼 /手機 >女裝 /男裝 /內衣 >鞋靴 /箱包 /配件 >童裝玩具 /孕產 /用品 >…

程序各個段text,data,bss,stack,heap

網上找了一堆資料學習一下,了解這些, 有助于規化程序結構,優化代碼; 使用gcc編譯出來的程序,用size可以查看程序結構和大小, 如 1: #size hello 2: Text data bss dec hex filename 3: 778 200 4 982 3D6 hello 所以一個可執行的程序文件,結構分三部分: .text 代碼段,用來存…

讓 keil MDK 支持C99

打開options fot target-> C/C 在 Misc Controls 中添加 --c99. 轉載于:https://www.cnblogs.com/svchao/p/4585034.html

html從日期格式中獲取年,js轉換日期格式(Js獲取年月日及時間轉換)

1、獲取年、月、日和將時間戳轉換成日期格式// 簡單的一句代碼var date new Date(時間戳); //獲取一個時間對象/**1. 下面是獲取時間日期的方法&#xff0c;需要什么樣的格式自己拼接起來就好了2. 更多好用的方法可以在這查到 -> http://www.w3school.com.cn/jsref/jsref_o…

月半小夜曲

轉載于:https://www.cnblogs.com/yesihoang/p/4588319.html

操作系統上機作業-- 使用信號量解決生產者、計算者、消費者問題(多線程)

pc2.c: 使用信號量解決生產者、計算者、消費者問題 ? 功能和前面的實驗相同&#xff0c;使用信號量解決 實現思路: 生產者、計算者、消費者三者之間的關系和上一個編程任務一樣&#xff0c;不一樣的是&#xff0c;將互斥量、條件變量封裝起來作為信號量&#xff0c;處理方…

Singleton 單件

模式分類 從目的來看&#xff1a; -創建型&#xff08;Creational&#xff09;模式&#xff1a;負責對象創建 -結構型&#xff08;Structural&#xff09;模式&#xff1a;處理類與對象間的組合 -行為型&#xff08;Behavioral&#xff09;模式&#xff1a;類與對象交互中的職責…

引入struts html標簽,【學習】Struts標簽之html標簽

html:multiboxhtml:multibox標簽生成多個checkbox。當您要使用大量的checkbox時使用這個標簽非常方便&#xff0c;可以使您避免在ActionForm中聲明大量的boolean類型的變量&#xff0c;帶之以一個數組就行了。注意:為了正確的處理沒有選中的checkbox您必須在reset()中設置數組的…

10個利用Eclipse調試Java的常見技巧

http://www.open-open.com/news/view/1ad9099 閱讀目錄 1. Conditional Breakpoint2. Exception Breakpoint3. Watch Point4. Evaluation (Display or Inspect or Watch)5. Change Variable Values6. Stop in Main7. Environment Variables8. Drop to Frame9. Step Filter10. S…

操作系統上機作業--創建N個線程(多線程)

ring.c: 創建N個線程&#xff0c;它們構成一個環 ? 創建N個線程&#xff1a;T1、T2、T3、… TN ? T1向T2發送整數1 ? T2收到后將整數加1 ? T2向T3發送整數2 ? T3收到后將整數加1 ? T3向T4發送整數3 ? … ? TN收到后將整數加1 ? TN向T1發送整數N 實…

管理者不應該做的事

1.責備讓每個人明白出錯的時候要承擔責任&#xff0c;而不是責任他&#xff0c;出問題要幫他認識問題&#xff0c;并且給他提供解決辦法&#xff0c;先了解來龍去脈&#xff0c;看看是哪里出了問題&#xff0c;是否能避免 2.印象沒有人會因為你的服裝、你的車、你的財產、你的頭…