AppWorker

AppWorker教程-公共函数

2018-06-20  本文已影响0人  wtcgzh

公共函数

AppWorker平台通常的逻辑代码都是在ui文件对应的ui.js里编写,ui.js是随ui文件自动生成的。我们通常也需要自定义一些js模块,封装一些javascript代码作为函数可以被重复调用。
我们通过一个demo来说明这个问题。

创建js文件

source下的script下创建一个自己的js文件,可以创建子目录,但是<mark>极力推荐只放在</mark>source/script这个根目录下

放在别的目录下也可以,包括放在data:// 下,但是如果要加密,只会加密这个source/script下的js文件,所以推荐只放在source/script下

image
在这个demo里定义了2个js文件,一个是souce://script/util.jssource://script/ui/util.js

定义和声明函数

在这个js文件里正常定义js的函数,然后利用module.exports声明这个函数可以被外部使用

注意:在自定义的js文件里使用AppWorker的函数和API,需要先额外加载一下AppWorker的库,参考示例第一句

//声明
module.exports.encode = base64encode;
module.exports.decode = base64decode;

.....

function base64encode(str) { //通过JavaScript实现base64编码
   ......
    return out;  
}

var alg = d1.sm("do_Algorithm");
function base64decode(str) {//通过AppWorker的do_Algorithm组件来实现base64的解码
        return alg.base64Sync("decode",str);
}

这个例子里我们定义了三个函数

  1. base64的编码的encode函数。定义在source/script/util.js
  2. base64的解码的decode函数。定义在source/script/util.js
  3. 定义返回按钮closepage的功能的init函数。定义在source/script/ui/util.js

使用函数

使用这个函数,需要先调用require方法加载你自己定义的js模块,require里的参数就是你定义的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编码按钮把用户输入的字符串转成base64字符串,点击Base64解码再把base64字符串返回原字符串

image

这个demo详细参考这里

注意:我们如果通过do_Webview组件加载html和js文件的话,规则和常规的web方式一样,通过<script>标签,这里就不介绍了。
上一篇下一篇

猜你喜欢

热点阅读