基於cordova開發的基本事項和常用總結

来源:http://www.cnblogs.com/dinghouchuanqi/archive/2017/07/27/7243288.html
-Advertisement-
Play Games

1. 基本規範 符合web標準, 語義化html, 結構、表現、行為分離, 相容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘可能的減小伺服器負載, 保證最快的解析速度. 2. 文件規範 html, css, js, image文件均放在約定的目錄中,基本目錄結構如2.1圖,並且目錄與文件名中 ...


說明:本規範只針對電力信息來制定的開發規範,其他用戶可作參考

1.  基本規範

符合web標準, 語義化html, 結構、表現、行為分離, 相容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘可能的減小伺服器負載, 保證最快的解析速度.

2. 文件規範

html, css, js, image文件均放在約定的目錄中,基本目錄結構如2.1圖,並且目錄與文件名中不能包含中文。其中style放css文件,plugins放平臺的cordova插件,index.html為應用的首頁面,icon.png為應用的圖標。(cordova.js和cordova_plugins.js為與平臺交互的js文件,必須放在根目錄下

 2.1

3. 書寫規範

3.1. html 規範

1. 文檔類型聲明及編碼: 統一聲明為html5meta屬性讓網頁寬度預設等於屏幕寬度,原始縮放比例為1.0,即100%顯示。編碼統一為utf-8, 書寫時利用IDE實現層次分明的縮進

2. cssjs文件外鏈儘量放置在至<head>...</head>之間

3.移動端需要在title上面加上meta,設置width=device-width, initial-scale=1, user-scalable=no 等比例視窗代碼。

例子:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>

    <title>首頁</title>

<meta charset="utf-8" />

</head>

<body>

這裡是內容

</body>

</html>

  

3.2. 引用css和js

由於國網使用的是crodova,為了使各個手機系統使用同一套代碼,所以,在建立移動APPWeb項目的時候,必須先引用cordova.js而後再引用你的其他js和css。

(友情說明:cordova_plugins.js 不需要引用,需放在跟目錄,再調用cordova.js,會自動去讀取配置,所以大家不必去在意cordova_plugins.js。)

3.3. 常用插件

3.3.1. 登錄插件

 

mam.navigator.loadconfig.getUserInfo(1,function login(v) {

             //getUserInfo 如果是蘋果,則不需要參數1 ,直接新版本

中,不需要參數,直接一個回調函數即可。mam.navigator.loadconfig.getUserInfo(callback)

                });

  

3.3.2. 獲取數據插件

獲取數據分為get,post,getJSON,postJSON插件,推薦使用postJSON

mam.navigator.ajax.postJSON(appcode,params,appservercode, successCallbac);

 /**

        參數說明:

  appcode:應用部署的環境地址(例如”DLSH”對應:http://pubtest.js.sgcc.com.cn)

   params: 要發送給伺服器的數據,以 Key/value 的鍵值對形式表示。如果不需要傳參數,傳遞””即可。

 appservercode:具體的介面資源(例如”API”對應:/dlsh_web/ajax/api.do)

  successCallback:成功回調

        **/

 

3.3.3. 返回與退出應用插件

一般來說,每個應用都有返回至上一頁或者至指定的頁面,也可以直接退出當前應用,而這個js是每個應用都用到的,下麵的代碼示例可應用到所有的移動h5頁面中。

代碼示例:

var devicePlatform;//獲取當前的設備

function onDeviceReady() {

    devicePlatform = device.platform;

    if ("iOS"== devicePlatform) {

        mam.navigator.appmenu.setBackButton(null, null, "1");//這裡是設置蘋果手機的返回按鈕

    }

    document.addEventListener('backbutton', hback);

}

function hback() {

    if ("iOS" == devicePlatform) {

        mam.navigator.appmenu.setBackButton(null, null, "0");

    }

    document.removeEventListener('backbutton', hback);

   //第一種:直接退出

    mam.navigator.appmenu.exitApp();

//第二種:直接跳轉到相對應的頁面

window.location.href = "../index.html";

//第三種:直接跳轉至上一頁

History.back(-1);

}

 

註釋:還有其他各種插件未講解的,請參考移動交互動平臺JavaScript介面設計文檔

4. IOS和安卓常見問題總結

報錯信息

報錯例子

解決方法

andriod可以訪問頁面
蘋果訪問不了

Index.html

安卓和蘋果都是是寫index.html

蘋果區分大小寫,所以,必須要
麽全部小寫,要麼全部大寫,要
麽按照定義的格式來抒寫。

訪問不了插件(未獲取到插件方
法)

蘋果,安卓都不可以

1:看cordova.js和public.js是否引用
2:看plugins文件夾下是否有這個插件
3:看引用的路徑是否有錯

安卓可以顯示折線圖,蘋果不顯示

測試時間寫死了。寫成這樣:
var t_time = new Date("2015-10-1");
安卓可以訪問,蘋果報invalid time

如果是測試的時候,時間格式有5種,嚴格按照時間格式來,才可避免

蘋果不顯示數據的問題
1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss);
4)new Date(yyyy,mth,dd);
5)new Date(ms);
month:用英文 表示月份名稱,從January到December

mth:用整數表示月份,從(1月)到11(12月)

dd:表示一個 月中的第幾天,從1到31

yyyy:四位數表示的年份

hh:小時數,從0(午夜)到23(晚11點)

mm: 分鐘數,從0到59的整數

ss:秒數,從0到59的整數

ms:毫秒數,為大於等於0的整數
new Date("January 12,2006 22:19:35");

new Date("January 12,2006");

new Date(2006,0,12,22,19,35);

new Date(2006,0,12);

new Date(1137075575000);

或者使用public.js裡面的formatDate()方法。

後臺傳的Json字元串,前臺使用Json.Parse
轉了,安卓是好的,蘋果顯示不了數據
(註意:若後臺傳的json字元串,前臺不識別的情況下)

Json.Parse(v),安卓可進入,蘋果不行

本平臺不支持Json.Parse,解決方法:eval("("+v+")") ,最新版本已經支持,如果使用舊版本cordova,請使用eval(雖然eval特麽的很浪費記憶體,但是你也只能使用這個)

蘋果手機彈出未載入插件

把cordova.js和cordova_plugins.js 放在
指定的js文件夾中,安卓都可以載入出來,
蘋果彈出框(未載入信息)

把cordova.js和cordova_plugins.js 放在根目錄就可以了
(註意:這個兩個Js文件,務必放在根目錄下)

蘋果不載入下拉框信息

$("下拉框").attr("selected",true);
安卓手機支持,蘋果不支持

寫成$("下拉框").prop("selected",true);

 

4.1. 應用發佈

應用發佈時應當填寫相應的表格,見《業務應用發佈操作說明_模板.xlsx》,如果需要綁定應用賬號,則必須填寫正確的賬號認證地址,具體的,可以找平臺組姚飛索要模板。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 恢復內容開始 摘要:由於應用環境的變化,需要將現存的對象放到新的環境中去,但新環境的介面是現存對象不滿足的。 意圖:將原本介面不相容的類通過轉換,使得它們能夠一起工作,復用現有的類 adapter和adaptee的關係 適配器一般分為:類適配器和組合適(對象)配器 推薦使用組合適配器,因為類適配器可 ...
  • reg = /[~#^$@%&!?%*]/gi; if (reg.test(postdata.Name.trim())) { alert("姓名不能含有特殊字元"); } else { if (isEmojiCharacter(postdata.Name.trim())) { alert("姓名不能 ...
  • $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { ...
  • 方法一:利用form的onsubmit()函數(經常使用) Html代碼 <script type="text/javascript"> function validateForm(){ if(document.reply.title.value == ""){ //通過form名來獲取form a ...
  • //重寫alert方法,去掉地址顯示window.alert = function(name){var iframe = document.createElement("IFRAME");iframe.style.display="none";iframe.setAttribute("src", ' ...
  • 其實按照我的情懷和尿性,文章的標題應該是 前端登堂入室寶典、前端成長就這三招 之類,奈何這是篇軟文 ~ 看官先別急Command + W,尤其是和我經歷類似 我可以負責任的說,這是一篇有態度的軟文 欲語淚先流 我希望做些有用的事情,甚至可以做個有用的人 才畢業工作的第一年我是滿足的,學到了很多新知識 ...
  • 可以看出,使用方式越來越簡單,程式員越來越傻,不知道是好事,還是壞事。。。 ...
  • 在這裡以面板為例: $().ready(function() { $('#menu').tree({ url : '/menu', onClick : function(node) { $('#center').panel({ href:node.attribute.url }... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...