整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          2個將HTML5打包成app的方法

          來越多的開發者熱衷于使用html5+JavaScript開發移動Web App。不過,HTML5 Web APP的出現能否在未來取代移動應用,就目前來說,還是個未知數。那么,有什么辦法,既可以使用HTMl5開發應 用,又可以將其簡單封裝成APK文件呢?

          一、Android SDK中的WebView

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

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

          ? 互聯網用:webView.loadUrl("http://www.qietu.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.qietu.com/"); ?

          ??????????? //設置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,編程自由,完美適應不同設備屏幕大小,適合高手使用。

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

          ----------------

          切圖網(qietu.com)最早將psd轉html服務模式帶到國內,并首個提供響應式、webapp前端開發的公司。專注web前端開發技術,關注用戶體驗,加我們公眾微信賬號:qietuwang(長按復制)

          們已經介紹了如何創建項目和搭建打包apk所需的環境,不清楚的可以看前兩篇文章,現在來進行打包apk文件的操作

          項目根目錄內容

          項目初始化創建時,項目文件夾內容

          運行ionic serve命令后,將自動生成文件(不用運行此命令也能進行打包)


          項目添加安卓平臺

          打開cmd,進入項目根目錄,在根目錄輸入ionic cordova platform add android回車,為項目添加安卓平臺,由于網絡原因可能會添加不上無限轉圈,正常情況五分鐘之內即可,超時請換一個時間再試,創建項目后只需添加一次平臺,后續可直接打包(build)

          出現下圖所示內容即為添加安卓平臺成功,可以用ionic cordova platform add android@6.0.0命令來指定安卓平臺版本,目前默認添加的是6.2.3版本

          添加平臺完成后,在項目中會自動生成platforms、plugins文件夾

          打包apk應用程序

          輸入ionic cordova build android --prod --release回車進行打包即可,紅框中的路徑即為打包后apk文件所在位置

          簽名打包apk應用程序

          以上供測試時使用,如果你想把你的應用程序上傳到谷歌商店或其他應用商店,你必須簽署APK文件。要做到這一點,你必須創建一個新的證書。由于這里需要用到java的keytool,請按照第二篇文章配置好java環境。

          • 輸入keytool -genkey -v -keystore [my-release-key].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [my-alias]([my-release-key]:名稱,[my-alias]:別名)回車,

          • 輸入秘鑰口令(自定義,相當于注冊賬號時的密碼,6位以上)回車,再輸入一次回車

          • 按提示輸入,可任意填寫,填寫一個按一下回車,最好截圖保留信息

          • 詢問是否正確,輸入是回車

          • 繼續回車,就會在改目錄下生成一個新的證書,如下圖所示

          • 把打包好的apk文件和證書放到同一目錄,輸入jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [my-release-key.jks] [android-release-unsigned.apk] [my-alias]([my-release-key.jks]:證書文件,[android-release-unsigned.apk]:未簽名apk文件,[my-alias]:別名)回車,輸入之前的秘鑰口令即可為apk簽名

          最后放上安裝完成后的效果圖

          實用命令

          ionic cordova platform add android(添加安卓平臺)

          ionic cordova build android --prod --release(打包apk文件)

          keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias(新建證書)

          jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.jks android-release-unsigned.apk my-alias(簽名apk)

          、 準備工作

          1、安裝JDK,下載地址(可能需要一個oracle賬號,大家百度一下或者自行注冊一個就行。盡可能選擇8或者11,這兩個是長期版本)Java SE | Oracle Technology Network | Oracle

          2、安裝NodeJS,下載地址Node.js (nodejs.org)

          3、下載安裝Android Studio,下載地址Download Android Studio and SDK tools | Android Developers (google.cn)

          4、下載安裝HbuilderX HBuilderX-高效極客技巧 (dcloud.io)

          5、申請DCloud開發者賬號,后期會用到

          6、下載離線工程:App離線打包SDK (dcloud.net.cn) ,后期會用到


          二、 正式開發及配置

          1、 在HbuilderX中新建一個uni-app項目,找到manifset.json這個文件,需要修改的地方

          基礎配置:有一個AppID,如果沒有點擊重新獲取,或者去DCloud開發者中心創建一個應用后填寫此處(源碼編輯)

          模塊配置:勾選需要的模塊,一般來說需要什么勾選什么即可

          權限配置:關于這一塊,大家需要去參考這篇文章(https://ask.dcloud.net.cn/article/36982)

          2、去掉HTML5+ Runtime版本提示框,在源碼視圖中添加以下內容

          3、附加:如果是要打包成AAB上傳谷歌商店你需要勾選以下內容,同時需要編輯生成的json文件

          OK,到這里基礎配置基本結束開始你的業務編寫即可。

          三、 離線打包工程配置及打包

          1、 打包所需要的資源:在HbuilderX中,發行=》原生APP本地打包=》生成本地打包APP資源,將生成后的目錄(**/APP_ID/www/**)拷貝(選擇到APP_ID這個文件夾即可)

          2、 解壓離線工程至某個目錄下,即:**/Android-SDK3.2.12.81096_20211101/HBuilder-Integrate-AS,打開Android Studio,導入此項目(HBuilder-Integrate-AS)

          3、 修改simpleDemo/build.gradle配置(密鑰簽名請跳轉第四步驟)

          4、 修改simpleDemo/main/AndroidManifest.xml配置,如果是特殊的權限,需要在這個文件中添加對應的權限配置(android key請跳轉第四步驟)

          5、 修改simpleDemo/ main/res/values/strings.xml配置

          6、 修改simpleDemo/ main/res/drawable配置,替換圖標LOGO、開屏頁

          7、 修改simpleDemo/ main/assets/data/dcloud_control.xml配置

          8、 修改simpleDemo/ main/assets/data/dcloud_properties.xml配置(去掉HTML5+ Runtime oauth提示)

          至此,離線打包項目配置完畢,然后執行:Build=》Build Bundle(s) / APK(s)=》Build APK(s)。打包完畢

          四、 簽名生成及配置

          簽名生成:

          簽名方案一:在Android Studio中依次按照以下截圖即可(我在windows中遇到了無法簽名的情況,Mac正常,如果你也是,請看方案二)

          簽名方案二:參考文章(Android平臺簽名證書(.keystore)生成指南 - DCloud問答

          )解決windows無法生成簽名的情況,Mac可以直接跳過步驟1

          注:如果是windows10,請勿使用cmd,請在系統圖標即WIN上右鍵,運行powershell(管理員),用這個命令窗執行以下命令,否則無效。

          1、設置jdk變量 set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin"(路徑根據jdk安裝目錄改變,但是必須指定到jre中去) 
          2、生成簽名文件(如果不是在項目目錄下生成的,需要將生成的文件拷貝到simpleDemo目錄下)
          keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 
          3、查看簽名信息 keytool -list -v -keystore test.keystore   Enter keystore password: //輸入密碼,回車 
          4、復制以下兩個信息 Alias name + SHA1

          android key生成:

          進入dcloud開發者后臺(https://dev.dcloud.net.cn/)登錄自己的賬號

          應用管理=》我創建的應用=》應用列表=》點擊應用名稱=》離線打包KEY管理=》填寫保存后,復制android對應的值即可


          主站蜘蛛池模板: 免费高清在线影片一区| 无码国产精品一区二区免费虚拟VR | 无码一区二区三区免费| 日本一区二区三区免费高清在线 | 精品国产乱码一区二区三区| 少妇无码AV无码一区| 国产精品一级香蕉一区| 99久久精品国产免看国产一区| 精品国产AV一区二区三区| 久久无码人妻一区二区三区 | 色欲AV蜜桃一区二区三| 亚洲国产精品第一区二区| 亚洲精品伦理熟女国产一区二区| 精品无码一区二区三区爱欲九九| 奇米精品一区二区三区在| 无码AV中文一区二区三区| 亚洲av色香蕉一区二区三区| 国产精品无码一区二区在线观| 日韩伦理一区二区| 久久亚洲国产精品一区二区| 无码国产精品一区二区免费式影视| 国产SUV精品一区二区四| 国精品无码一区二区三区在线蜜臀 | 亚洲区精品久久一区二区三区| 久久久久人妻精品一区三寸| 国产伦一区二区三区高清 | 一区二区三区在线播放| 精品无码日韩一区二区三区不卡| 成人精品一区二区不卡视频| 一区二区三区在线观看中文字幕| 亚洲国产一区视频| 无码av人妻一区二区三区四区| 日韩三级一区二区| 精品亚洲一区二区三区在线观看 | 国产精品女同一区二区久久| 无码日韩人妻AV一区免费l| 国产区精品一区二区不卡中文| 麻豆亚洲av熟女国产一区二| 国产精品无码一区二区三区在| 99久久人妻精品免费一区| 日本不卡一区二区三区|