下面将为您介绍AppCan 官方插件API如何调用主要的使用方法.
温馨提示: 每个API的“简介>开源源码”部分,官方的公共插件
“已集成到打包平台,无需下载自定义上传,直接勾选使用”
原生代码已经开源,如果官方插件无法满足您的定制需求,特定API接口可自定义配置参数,当然也可以进行二次开发封装,了解开源文档。
window.uexOnload 窗口加载完毕后平台将触发此方法。AppCan新版JSSDK支持appcan.ready替换window.uexOnload;
公共插件:为AppCan开放出的稳定版插件(已集成到平台公共插件,直接勾选使用),持续维护更新;
自定义beta版插件:官方开放的公测插件收集用户使用反馈(自定义上传到我的插件勾选使用),持续维护更新。
首先需要初始化一个AppCan javascript sdk,API对象的操作都是通过JSSDK完成的。 了解JSSDK
appcan_JSSDK | 窗口管理 | 应用管理 | 网络 | 事件 Events与设备Device | 数据存储 |
---|---|---|---|---|---|
概要 | 窗口模块Window | widget | 网络请求Request | 事件模块EventEmitter | Database |
基础类库Base | 浮动窗口模块Frame | widgetOne | 离线缓存icache | 设备模块Device | LocStorage |
UI组件... | 文件模块File |
代码结构
AppCan在IDE编写代码时, AppCan平台采用html+css+js 结构调用。
ide在项目开发时默认会创建基本的框架结构 css、js文件夹、config.xml、index.html、index_content.html(即空模板项目)css目录下的css文件里是ui基础框架基础类文件,js目录下是AppCan封装提供的jssdk文件,其中appcan.control.js、appcan.js是appcan整个框架依赖的基础库,不能去除,同时也封装了uexWindow、 uexWidget、uexWidgetOne基础方法,比如appcan.window.xxx appcan.frame.xxx使用必须要依赖这俩个库。
使用JSSDK调用 API
下面jssdk封装的appcan.window与调用原生接口一致,uexWindow.open这种方式不推荐采用,大可采用以下方式
appcan.window.open({
name:name,
dataType:0,
aniId:2,
data:name + ".html",
extraInfo:{
opaque:true,
bgColor:bg
}
});
使用AppCan原生接口调用 API
JS SDK对常用底层插件API的接口再次封装,没有封装的插件API需要采用直接调用方式如照相机(uexCamera.)、图片浏览(uexImage.)、邮件(uexEmail.)等各分类插件API 。
例如
js代码
< script type="text/javascript">
function createButton(){
var id = 1001;
var x = 100;
var y = 100;
var width = 100;
var height = 100;
var jsonData = '{"title":"AppCan","titleColor":"#111111","bgImage":"res://a1.png","textSize":"18"}';
uexButton.open(id,x,y,width,height,jsonData);
}
function closeButton(){
var id = 1001;
uexButton.close(id);
}
</script>
html页面body里:
< input class="btn" type="button" value="uexButton" onclick="createButton();"/>
< input class="btn" type="button" value="close" onclick="closeButton();"/>
AppCan javascript sdk与插件API一一对应,灵活性高且易于扩展。您可以基于AppCan javascript sdk对AppCan原生插件的API进行封装,扩展出自己想要的功能。
API接口方法对于一些方法还封装了一些回调方法,也是对于该方法进行的回调,按照正常接口调用即可
例如
< script type="text/javascript">
var param1 = {
appData:'com.tencent.mobileqq'//判断手机上是否安装qq应用
};
var data1 = JSON.stringify(param1);
uexWidget.isAppInstalled(data1);
uexWidget.cbIsAppInstalled = function(info){
var result = JSON.parse(info);
if(result.installed == 0){
alert('installed');
}else{
alert('not installed');
}
}
</script>
如果您完成以上代码编辑,恭喜您,您已经拥有了具备调用API的基础。
对于某些特殊接口,是有对应的参数要传入
例如
function shareWebImgTextToQQ(){
var appId = "222222"
var json = '{"title":"图文分享标题","summary":"图文分享消息摘要","targetUrl":"http://appcan.cn","imageUrl":"res://aa.jpg","appName":"uexQQ", "cflag":"1"}';
uexQQ.shareWebImgTextToQQ(appId, json);
}
参数值输入的要求
AppCan 插件api接口在调用时, 可能需要传递相应的值给接口. 此时需要您在传值时, 注意下面的事项:
• 大部分情况下, 您会传递一个数字类型的值到AppCan 插件api接口参数中, 此时只需要简单的写上需要的值即可:
数字的话,双引号单引号或直接写都可以
uexWindow.setReportKey(1,1)
•如果您的输入中有空格出现, 那么请使用单引号(')括住您的值
这种情况不常见,可以忽略
•如果是采用一个string 类型请使用双引号(")括住您的值
例如
windName:(String类型) 必选 窗口名称,默认为当前窗口
popName:(String类型) 必选 浮动窗口名称
inPageName:(String类型) 必选 单页面窗口的名字
js:(String类型) 必选 js脚本内容
uexWindow.evaluateMultiPopoverScript("", "multipop", "pop2", "alert('multipop')");
• 使用JSON格式作为参数
JSON格式在AppCan 插件api中是允许使用的, 特别是当您要同时传入多个字段时, 可以按照JsonArray的格式传入多个id值. Json格式需要您严格按照Json格式编写数据, 并且要对Json格式中的双引号(")进行特殊的处理
例如
var params = {
leftSliding:{
width:240,
url:"uexWindow_left.html"
},
rightSliding:{
width:240,
url:"uexWindow_left.html"
}
};
var paramStr = JSON.stringify(params);
uexWindow.setSlidingWindow(paramStr);
var id = 1001;
var x = 100;
var y = 100;
var width = 100;
var height = 100;
var jsonData = '{"title":"AppCan","titleColor":"#111111","bgImage":"res://a1.png","textSize":"18"}';
uexButton.open(id,x,y,width,height,jsonData);
AppCan封装的插件是在原生打包环境进行编译的,仅在AppCan平台上使用,都需要勾选插件名称打包,生成安装包 需要真机调试效果。