公共函數(shù)
AppWorker平臺(tái)通常的邏輯代碼都是在ui文件對(duì)應(yīng)的ui.js里編寫,ui.js是隨ui文件自動(dòng)生成的。我們通常也需要自定義一些js模塊,封裝一些javascript代碼作為函數(shù)可以被重復(fù)調(diào)用。
我們通過(guò)一個(gè)demo來(lái)說(shuō)明這個(gè)問(wèn)題。
創(chuàng)建js文件
在source下的script下創(chuàng)建一個(gè)自己的js文件,可以創(chuàng)建子目錄,但是<mark>極力推薦只放在</mark>source/script這個(gè)根目錄下
放在別的目錄下也可以,包括放在data:// 下,但是如果要加密,只會(huì)加密這個(gè)source/script下的js文件,所以推薦只放在source/script下

在這個(gè)demo里定義了2個(gè)js文件,一個(gè)是
souce://script/util.js 和source://script/ui/util.js
定義和聲明函數(shù)
在這個(gè)js文件里正常定義js的函數(shù),然后利用module.exports聲明這個(gè)函數(shù)可以被外部使用
注意:在自定義的js文件里使用AppWorker的函數(shù)和API,需要先額外加載一下AppWorker的庫(kù),參考示例第一句
//聲明
module.exports.encode = base64encode;
module.exports.decode = base64decode;
.....
function base64encode(str) { //通過(guò)JavaScript實(shí)現(xiàn)base64編碼
......
return out;
}
var alg = d1.sm("do_Algorithm");
function base64decode(str) {//通過(guò)AppWorker的do_Algorithm組件來(lái)實(shí)現(xiàn)base64的解碼
return alg.base64Sync("decode",str);
}
這個(gè)例子里我們定義了三個(gè)函數(shù)
- base64的編碼的
encode函數(shù)。定義在source/script/util.js。 - base64的解碼的
decode函數(shù)。定義在source/script/util.js。 - 定義返回按鈕closepage的功能的init函數(shù)。定義在
source/script/ui/util.js
使用函數(shù)
使用這個(gè)函數(shù),需要先調(diào)用require方法加載你自己定義的js模塊,require里的參數(shù)就是你定義的js名字,注意<mark>不需要加擴(kuò)展名</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;
})
這個(gè)demo點(diǎn)擊 Base64編碼按鈕把用戶輸入的字符串轉(zhuǎn)成base64字符串,點(diǎn)擊Base64解碼再把base64字符串返回原字符串

這個(gè)demo詳細(xì)參考這里