公共函數(shù)
AppWorker平臺通常的邏輯代碼都是在ui文件對應(yīng)的ui.js里編寫,ui.js是隨ui文件自動生成的。我們通常也需要自定義一些js模塊,封裝一些javascript代碼作為函數(shù)可以被重復(fù)調(diào)用。
我們通過一個demo來說明這個問題。
創(chuàng)建js文件
在source
下的script
下創(chuàng)建一個自己的js文件,可以創(chuàng)建子目錄,但是<mark>極力推薦只放在</mark>source/script
這個根目錄下
放在別的目錄下也可以,包括放在data:// 下,但是如果要加密,只會加密這個source/script下的js文件,所以推薦只放在source/script下
image
在這個demo里定義了2個js文件,一個是
souce://script/util.js
和source://script/ui/util.js
定義和聲明函數(shù)
在這個js文件里正常定義js的函數(shù),然后利用module.exports
聲明這個函數(shù)可以被外部使用
注意:在自定義的js文件里使用AppWorker的函數(shù)和API,需要先額外加載一下AppWorker的庫,參考示例第一句
//聲明
module.exports.encode = base64encode;
module.exports.decode = base64decode;
.....
function base64encode(str) { //通過JavaScript實現(xiàn)base64編碼
......
return out;
}
var alg = d1.sm("do_Algorithm");
function base64decode(str) {//通過AppWorker的do_Algorithm組件來實現(xiàn)base64的解碼
return alg.base64Sync("decode",str);
}
這個例子里我們定義了三個函數(shù)
- base64的編碼的
encode
函數(shù)。定義在source/script/util.js
。 - base64的解碼的
decode
函數(shù)。定義在source/script/util.js
。 - 定義返回按鈕closepage的功能的init函數(shù)。定義在
source/script/ui/util.js
使用函數(shù)
使用這個函數(shù),需要先調(diào)用require
方法加載你自己定義的js模塊,require里的參數(shù)就是你定義的js名字,注意<mark>不需要加擴展名</mark>
var nf = sm("do_Notification");
var util = require("util");//加載source/script/util.js模塊
//也可以寫成require("source://script/util");不要后綴
var ui_util = require("ui/util");//加載source/script/ui/util.js模塊
//也可以寫成require("source://script/ui/util");不要后綴
//返回按鈕
ui_util.init("close");
//
.....
encodeButton.on("touch", function() {
var src = srcTextBox.text;
var dest = util.encode(src);
destTextBox.text = dest;
})
decodeButton.on("touch", function() {
var src = destTextBox.text;
var dest = util.decode(src);
srcTextBox.text = dest;
})
這個demo點擊 Base64編碼
按鈕把用戶輸入的字符串轉(zhuǎn)成base64字符串,點擊Base64解碼
再把base64字符串返回原字符串
image
這個demo詳細參考這里