空閑的時(shí)候總結(jié)的筆記,看一下apijs,api.js 是由 APICloud 官方為您提供的輔助腳本框架,遵循主流前端框架 jQuery 的使用習(xí)慣。
api.css 所有手機(jī)上表現(xiàn)一致。
AUI 前端布局框架。
swipe.js 實(shí)現(xiàn)多屏切換、輪播圖等功能。
dot.js 使用 Web 方式顯示數(shù)據(jù)列表時(shí),使用 js 模板可以有效提高開發(fā)效率和運(yùn)行體驗(yàn),通過(guò)簡(jiǎn)單的自定義語(yǔ)法即可完成復(fù)雜布局的列表開發(fā)。
SHA1.js 算法進(jìn)行數(shù)據(jù)加密。
APICloud-rest.js 進(jìn)行數(shù)據(jù)云操作。
應(yīng)用包結(jié)構(gòu)
“config.xml”是配置文件,
“index.html”是啟動(dòng)頁(yè)面,
“icon”為圖標(biāo)文件目錄,
“l(fā)aunch”為啟動(dòng)圖片目錄
config.xml 配置文件
“id”: 必填,應(yīng)用ID,由云服務(wù)器自動(dòng)分配。它是該應(yīng)用的唯一標(biāo)識(shí)。
“version”:必填,應(yīng)用的版本號(hào)。
“name”:必填,應(yīng)用名稱。
“description”:可選,應(yīng)用簡(jiǎn)單描述信息。
“content”:必填,應(yīng)用運(yùn)行的起始頁(yè)。
“permission”:必填,權(quán)限配置。
前端開發(fā)框架
可與第三方前端框架混用,也可不用我們的框架;
api.css 處理不同平臺(tái)瀏覽器的默認(rèn)樣式,
api.js 提供最基礎(chǔ)的 JavaScript 方法,
所有方法在 window.$api 對(duì)象下。
詳細(xì)文檔見前端框架開發(fā)指南文檔https://docs.apicloud.com/Front-end-Framework/framework-dev-guide)
api.js
用法$api.
.trim() 去掉字符串首尾空格;
.trimAll() 去掉字符串所有空格;
.isArray() 判斷對(duì)象是否為數(shù)組;
.addEvt((el, 事件, fn, false) 為DOM元素綁定事件;
.rmEvt() 移除DOM元素綁定的事件;
.one(el, 事件, fn, false) 為DOM元素綁定事件,事件只執(zhí)行一次;
.dom(el, CSS 選擇器) 返回首個(gè)匹配的DOM元素;
.domAll(el, CSS 選擇器) 選擇所有匹配的DOM元素;
.byId() 通過(guò)Id選擇DOM元素;
.first(el, selector) 選擇DOM元素的第一個(gè)子元素;
.last() 選擇DOM元素的最后一個(gè)子元素;
.eq( el, index) 選擇第幾個(gè)子元素;
.prev( el) 選擇相鄰的前一個(gè)元素;
.next( el) 選擇相鄰的下一個(gè)元素;
.contains(parentEl, targetEl) 判斷某一個(gè)元素是否包含目標(biāo)元素;
.closest()
.remove() 移除DOM元素;
.attr(el, name, value) 獲取或設(shè)置DOM元素的屬性;
.removeAttr(el, name) 移除DOM元素的屬性;
.hasCls(el, cls) DOM元素是否含有某個(gè)className;
.addCls(el, cls) 為DOM元素增加className;
.removeCls(el, cls) 移除指定的className;
.val(el, val) 獲取或設(shè)置常用 Form 表單元素的 value 值;
.prepend(el, html) 在DOM元素內(nèi)部,首個(gè)子元素前插入HTML字符串$api.prepend(el,'<li>hello</li>');
.append(el, html) 在DOM元素內(nèi)部,最后一個(gè)子元素后面插入HTML字符串
.before(el, html) 在DOM元素前面插入HTML字符串;
.after(el, html) 在DOM元素后面插入HTML字符串;$api.after(el,'<h1>world</h1>');
.html(el, html) 獲取或設(shè)置DOM元素的innerHTML;
.text(el, txt) 設(shè)置或者獲取元素的文本內(nèi)容;
.offset() 獲取元素在頁(yè)面中的位置與寬高,(此為距離頁(yè)面左側(cè)及頂端的位置,并非距離窗口的位置);
var offset = $api.offset(el);
var left = offset.l;
var top = offset.t;
var width = offset.w;
var height = offset.h;
.css(el,'width:800px;border:1px solid red') 設(shè)置所傳入的DOM元素的樣式,可傳入多條樣式;
.cssVal() 獲取指定DOM元素的指定屬性的完整的值,$api.cssVal(el,'width'); // 800px;
.jsonToStr() 將標(biāo)準(zhǔn)的JSON 對(duì)象轉(zhuǎn)換成字符串格式;
. strToJson () 將JSON字符串轉(zhuǎn)換成JSON對(duì)象;
.setStorage(key,value) 設(shè)置localStorage數(shù)據(jù);
.getStorage(key) 獲取localStorage數(shù)據(jù),必須與$api.setStorage()配套使用;
.rmStorage(key) 清除localStorage中與鍵名對(duì)應(yīng)的值;
.clearStorage () 清除localStorage的所有數(shù)據(jù),慎用;
.fixIos7Bar(el) 適配iOS7+系統(tǒng)狀態(tài)欄,為傳入的DOM元素增加20px的上內(nèi)邊距;
.fixStatusBar() 避免header與狀態(tài)欄重疊;
.toast('演示','延時(shí)提示框',1000) 延時(shí)提示框;
.get(url,function(ret){ alert(ret);},json) api.ajax() 方法的get方式;
.post(url,data,fnSuc,dataType) api.ajax()方法的post方式;
前端API調(diào)用
核心模塊在 window.api 對(duì)象下,默認(rèn)提供該模塊,不需要單獨(dú)引用。
擴(kuò)展模塊在相應(yīng)的模塊對(duì)象下(例如:文件系統(tǒng)模塊在fs對(duì)象下),需要require引入(var fs = api.require('fs');)。API核心模塊已經(jīng)覆蓋一般應(yīng)用的絕大部分功能。
模塊中所有方法均遵循 api.functionName(params, callback)格式,params為JSON格式,callback是Function類型,callback返回兩個(gè)參數(shù),均為JSON格式:callback(ret, err),ret處理成功信息,err處理錯(cuò)誤信息。
apiready 方法在所有核心API模塊準(zhǔn)備完畢時(shí)執(zhí)行。(api文檔 https://docs.apicloud.com/Client-API/api)
var systemType = api.systemType; // 比如: ios 系統(tǒng)類型
var deviceModel = api.deviceModel; // 比如: iPhone 5 設(shè)備名稱
var screenWidth = api.screenWidth; // 比如: 640 屏幕分辨率
header.style.paddingTop = api.safeArea.top + 'px'; 沉浸式
var statusBarAppearance = api.statusBarAppearance; // 比如: true 當(dāng)前應(yīng)用狀態(tài)欄是否支持沉浸式效果,布爾類型。
這個(gè)筆記為了方便查找方便,如果在用的小伙伴可以放到桌面便于查找;對(duì)前端感興趣的小白可以加企鵝群:829568767,免費(fèi)公開課 。