1. 程式人生 > >使用Cordova將網站(Web Applications)封裝為移動Apps

使用Cordova將網站(Web Applications)封裝為移動Apps

Cordova是一個可將網頁程式(Web Applications)轉換為Apps的框架,支援蘋果、安卓、微軟三大移動商店應用開發。Visual Studio 2015對Cordova有著良好的支撐,包括專案模板、編碼、除錯、打包到部署,一如既往的微軟大包大攬風格。我最近試著用Visual Studio Tools for Apache Cordova包裝了一個手機版的H5網站,未對原始網站做任何改動,就生成了能在Android、iOS和Windows Phone上部署執行的Apps。這麼高的生產力,對管理人員而言,無疑是很有吸引力的!下面說一下我的封裝過程及遇到的坑,供參考。
一、使用
1.安裝Visual Studio Tools for Apache Cordova,參考“http://www.cnblogs.com/UltimateAvalon/p/5328642.html”。安裝中有兩個保持,首先是要保持網路暢通,因為很多檔案(特別是Android SDK)必須從網上下載;再就是要保持耐心,安裝耗費時間與網路狀況有很大的關係。對於Android、iOS的SDK最好是用現成的,如果現下現裝,那就只會增加挫折感。
2.練習,參考“http://www.cnblogs.com/UltimateAvalon/p/5329677.html”。中間會涉及到Android、iOS開發的常識,自己搜文章看,反覆看,反覆練,如果感覺困難重重,那就放棄吧。
3.封裝H5網站成App。
  3.1.在Visual Studio 2015中使用專案模板“JavaScript->Apache Cordova Apps->Blank App( Apache Cordova)”新建一個工程;
  3.2.開啟config.xml,在“外掛(Plugins)”標籤頁安裝“InAppBrowser”;
  3.3.開啟“www->scripts->index.js”,在“function onDeviceReady”的最後新增如下程式碼,注意填入你要封裝網站的URL:
if (window.cordova && window.cordova.InAppBrowser) {
            window.open = window.cordova.InAppBrowser.open;
            window.open('此處為你要封裝網站的URL', '_blank', 'location=no,toolbar=no');
        }
4.修改配置檔案,開啟config.xml,在“通用(Common)”標籤頁設定App顯示名稱(Display Name),程式包名稱(Package Name),根據需要在“Windows、Android、iOS”標籤頁設定平臺相關引數。
5.除錯,包括Ripple模擬器、Windows、Android、iOS平臺模擬器。
6.調整美化頁面,現在流行使用Ionic框架,參見“http://www.runoob.com/ionic/ionic-tutorial.html”。
7.製作圖示、閃屏圖片替換“resources”及其子目錄下的對應檔案。
8.打包和釋出,參見“http://taco.visualstudio.com/en-us/docs/tutorial-package-publish-readme/”。


二、跳坑
1.真機除錯
  Android:在手機端啟用開發者模式,然後USB線連線電腦,在Visual Studio中選擇“裝置(Device)”進行除錯;
  iOS:在Mac上用Xcode生成一個繫結名(Bundle Identifier)與config.xml裡設定的程式包名稱(Package Name)完全相同的iOS工程,並用該Xcode工程完成真機除錯,然後在Visual Studio中選擇“遠端裝置(Remote Device)”或“本地裝置  (Local Device)”除錯;
  Windows Phone 10:在手機端啟用開發者模式,並且把下面的裝置發現和裝置門戶開啟,然後USB線連線電腦,在Visual Studio中選擇“裝置(Device)”進行除錯。
2.在Android中除錯時提示“Application Error - The connection to the server was unsuccessful.”
  這是由於模擬器響應太慢導致的,可通過改名法解決,首先把index.html更名為main.html,然後新建一個index.html頁面,內容如下:
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script> window.location='./main.html'; </script> 
</head>
<body >


</body>
</html>
  改名法的主要原理就是通過一個過渡頁面,把載入首頁的內容最小化。
3.在Android使用簽名後的apk除錯時提示“Android packages must be signed when debugging using the Release configuration.”
  簽名時需要的密碼(storePassword和password)必須是在配置檔案(build.json或ant.properties)中預填入的,不能是在對話方塊中互動輸入的。
4.在Android中部署時提示“INSTALL_PARSE_FAILED_MANIFEST_MALFORMED”
  包名(Package Name)的首字母必須小寫。
5.在Android中編譯時提示“No Java files found which extend CordovaActivity”
  刪除目錄“platforms”後再編譯,實際上另外兩個動態生成的目錄“bin”和“bld”也可以根據需要刪除。
6.隱藏內嵌瀏覽器(InAppBrowser)位址列和工具欄
  將window.cordova.InAppBrowser.open的第三個引數設定為'location=no,toolbar=no'。




如果您是和我一樣骨灰級的IT從業者,順便提醒一下:時代真的變了,微軟現在走open路線了,Visual Studio Community版是免費的,完全支援上述開發任務。

相關推薦

使用Cordova網站Web Applications封裝移動Apps

Cordova是一個可將網頁程式(Web Applications)轉換為Apps的框架,支援蘋果、安卓、微軟三大移動商店應用開發。Visual Studio 2015對Cordova有著良好的支撐,包括專案模板、編碼、除錯、打包到部署,一如既往的微軟大包大攬風格。我最近試

[node 工具 ] 用 Node.js bugzilla 上的 bug 列表導入到 excel 表格在線版本之一 web

oct node img please utf save smis charset nim 用 Node.js 將 bugzilla 上的 bug 列表導入到 excel 表格在線版本之一( server 端) <!DOCTYPE html>

MWeb的文章發布到自己做的網站超級詳細

1.將MWeb裏的文章整理分類(一個條理性的分類是網站成功的第一步) 2.雙擊鼠標你所有發布到網上的內容跟目錄 3.編輯靜態網站配置 模板選擇 MWeb-Found 支持markdown格式 所以在網站上顯示markdown的格式 網站名稱取你想要的名字,我取“上古傑作” 網站網址可以隨便取一個不重要

什麽是Web ServiceWeb服務

left 解決方案 暴露 它的 標準 編程 面向服務 好的 什麽是 從表面上看,Web Service就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。例如可以創建一個提供天氣預報的Web Service,那麽無論你用哪種編程語言開發的應用都可以通過調用它

APP,Web ApplicationWeb APP等概念講解

webapp app 博文說明【前言】: 本文將通過個人口吻介紹APP,Web Application相關知識,在目前時間點【2017年5月14號】下,所掌握的技術水平有限,可能會存在不少知識理解不夠深入或全面,望大家指出問題共同交流,在後續工作及學習中如發現本文內容與實際情況有所偏差,將會完善

學習MVC之租房網站十二-緩存和靜態頁面

.html 控制臺 ron 在線教育 適合 取代 system caching 租房網站 在上一篇<學習MVC之租房網站(十一)-定時任務和雲存儲>學習了Quartz的使用、發郵件,並將通過UEditor上傳的圖片保存到雲存儲。在項目的最後,再學習優化網站性能的

ScvQ常用的網站持續更新...

sta https tac cto stack 開源中國 更新 title com GitHub:     https://github.com/ScvQ 開源中國:     http://git.oschina.net/ScvQ 博客園:     http://www.c

初級程序員學習網站更新ing

ins lob 初級 ast ebo intellij sna vim使用 dir go語言學習: goexample快速學習:https://gobyexample.com/ 《Go入門指南》中文教程:https://github.com/Unknwon/the-way-

ionic3打包出錯ionic cordova build android系列一:could not find an installed version of gradle either in android studio

lan 問題 打包 fail .html ascii failed contains ref 1.運行ionic cordova build android 時報錯:could not find an installed version of gradle either i

使用Revel(go)開發網站全面版

goroutine file format 參數解析 註意 ive mvc nbsp 訪問 Revel很好的利用了Go語言的goroutine,把每一個request都分配到了goroutine裏。不用再寫一大堆的回調。如果你寫過nodejs的話就會深刻的體會到callba

Linux下KVM的圖形界面管理工具WebVirtMgrWeb

查看 sta bsp 創建 ron span rac post tsp WebVirtMgr面板 截圖 介紹 WebVirtMgr是一個基於libvirt的Web界面,用於管理虛擬機。它允許您創建和配置新域,並調整域的資源分

Fidder詳解-抓取HTTPS清求Web/App抓包分析靠譜篇

可能 clas 請求 設置代理 cer port 關閉 lan str 為什麽要學Fidder抓包? 學習接口,必須要學http協議,不要求您對協議的掌握有多深。只是希望你能夠了解什麽是協議、協議的報文、狀態碼等等!本文通過抓包工具Fidder帶你進入接口的大門。我們通過

簡單的做一個圖片上傳預覽web前端

chrom 預覽 web前端 console fine 分享圖片 fire title right 轉載:點擊查看原文 在做web項目很多的時候圖片都是避免不了的,所以操作圖片就成了一個相對比較棘手的問題,其實也不是說很麻煩,只是說上傳然後直接預覽的過

ssm框架整合入門系列——編寫ssm整合的關鍵配置檔案web.xml

編寫ssm整合的關鍵配置檔案(web.xml) 前言 web.xml,一個Tomcat工程中最重要的配置檔案。web.xml沒有其實也可以----只要你確定你的專案裡面不需要任何過濾器、監聽器、Servlet等等 在啟動一個WEB專案的時候,WEB容器(比如t

jspweb監聽器

jsp中的監聽器分為三類:ServletContext事件監聽器、HttpSession事件監聽器、ServletRequest事件監聽器。 一、監聽ServletContext事件 ServletContext該事件是WEb應用程式生命週期事件,作用於整個web應用(相當於appl

IT人如何打造個性化的個人網站線上簡歷

前言 眾所周知,IT行業人員在求職時,如果擁有自己的技術部落格和個人網站多少是可以加些分的,因為這也是IT人的技術證明之一。內容豐富的技術部落格就不必多少了,往往技術部落格大神市場上多是供不應求的,而且技術部落格出彩主要是在內容經營上,至於部落格本身直接到各大技術平臺註冊一個即可,當然有興趣的朋友想要自建個

Spring Boot Web:配置 AOP 切面

目錄 AOP 簡介 AOP相關概念 AOP相關注解 編寫AOP 在pom.xml加入相關依賴 編寫切面類 頁面訪問(專案啟動) JoinPoint詳解 關於多個切面的執行順序 總結 原始碼下載 AOP 簡介 AOP相關概念 Tar

Spring Boot Web:整合攔截器Interceptor

目錄 說在前面 在pom.xml加入相關依賴 定義攔截器 編寫攔截器 Interceptor 註冊攔截器 Interceptor 頁面訪問(專案啟動) 總結 原始碼下載 說在前面 Struts2(Interceptor篇):攔截器的實現

Spring Boot Web:支援JSP

  目錄 前言 在pom.xml加入相關依賴 配置application.properties 建立JSP頁面 Controller層 JSP頁面 專案啟動 第一種方式,SpringBoot直接啟動(內建整合tomcat) 瀏覽器訪問 第二種

Spring Boot Web:整合Fastjson

目錄 說在前面 Fastjson目標 在pom.xml加入相關依賴 整合 Fastjson 配置管理類WebMvcConfigurer 程式設計式配置 實體類Customer 控制器類IndexController @ResponseBody 頁面訪問