AppCan插件开发学习
2015-09-14 11:24
288 查看
1、下载appcan开发工具,http://download.appcan.cn/appcan_sdk/AppCan_IDE_Personal_Setup_V3.2.1_201506041433.exe
2、下载插件开发演示demo,http://pan.baidu.com/s/1pJnCj2r
3、导入demo中的\调试插件的工程中的调试插件工程。
4、新建插件类继承EUExBase类,注意:新建插件类的命名规范为EUEx+名称,如:EUExToast 。若类名不规范会导致调用失败。
5、在新建类中创建自己的插件方法,例如:
public class EUExToast extends EUExBase {
private Context context;
public EUExToast(Context arg0, EBrowserView arg1) {
super(arg0, arg1);
this.context = arg0;
}
public void toast(String[] parm){
Toast.makeText(context, "success" + parm[0], Toast.LENGTH_LONG).show();
}
@Override
protected boolean clean() {
// TODO Auto-generated method stub
return false;
}
}
注意,方法toast中的string[] parm不能去除,不能写成toas()。string[] parm为js调用native时传入的参数。
6、在res/xml/plugin.xml文件中注册接口
<plugin
className="com.iraid.toast.EUExToast" uexName="uexToast" >
<method name="toast" />
</plugin>
注意:uexToast命名规范。
7、若native需要回传数值给js,此时可以使用
jsCallback("uexVakten.vakten_auth", int, EUExCallback.F_C_TEXT, "");
public void toast(String[] parm){
Toast.makeText(context, "success" + parm[0], Toast.LENGTH_LONG).show();
jsCallback("uexVakten.vakten_auth", successCode, EUExCallback.F_C_TEXT, sessionId);
}
8、在js中使用
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/index.css">
<script type="text/javascript">
function callBackAuth(opCode, dataType, data){
//opCode为native调用jsCallback中的successCode参数
alert(opCode);
//data为native调用jsCallback中的sessionId参数
alert(data);
}
window.uexOnload = function(type){
//type 为native调用jsCallback中的successCode参数
if(type == 0){
uexVakten.vakten_auth = callBackAuth;
}else{
uexVakten.vakten_auth = callBackAuth;
}
}
function toast(toast){
uexVakten.authDevice();
}
</script>
</head>
<body>
<div class="tit">uexDemo对象</div>
<div class="conbor">
<div class="consj">
<input type="button" class="btn" value="Toast" onclick="toast('dddd');">
</div>
</div>
</body>
</html>
9、生成ide导入插件包,插件包包括jar文件夹、dex文件夹、info.xml、plugin.xml、res文件夹(非必须)、AndroidManifest.xml(非必须)、so文件夹(非必须)。
jar文件夹:存放自己插件的native code导出的jar包
dex文件夹:存放经过android dex工具生成自己插件的native code导出的jar包的dex jar包。
info.xml:记录插件的描述
<?xml version="1.0" encoding="utf-8"?>
<uexplugins>
<plugin uexName="uexToast" version="1.0" build="0">
<info>toast功能</info>
</plugin>
</uexplugins>
plugin.xml:测试工程中的plugin.xml文件
res文件夹:若使用了资源文件,则将资源文件放入res文件夹中,res文件夹目录与android工程中的res目录相同
so文件夹:若使用了so库,则需要将so库放入so文件夹中
AndroidManifest.xml:只需要放入本插件用的的设置,如权限,组件。
10、将9中的文件/文件夹放入同一个文件夹中,然后压缩成zip文件,上传appcan ide中,在生成安装文件时选择该插件。
更多问题解决方法:http://newdocx.appcan.cn/newdocx/docx?type=1361_1359
2、下载插件开发演示demo,http://pan.baidu.com/s/1pJnCj2r
3、导入demo中的\调试插件的工程中的调试插件工程。
4、新建插件类继承EUExBase类,注意:新建插件类的命名规范为EUEx+名称,如:EUExToast 。若类名不规范会导致调用失败。
5、在新建类中创建自己的插件方法,例如:
public class EUExToast extends EUExBase {
private Context context;
public EUExToast(Context arg0, EBrowserView arg1) {
super(arg0, arg1);
this.context = arg0;
}
public void toast(String[] parm){
Toast.makeText(context, "success" + parm[0], Toast.LENGTH_LONG).show();
}
@Override
protected boolean clean() {
// TODO Auto-generated method stub
return false;
}
}
注意,方法toast中的string[] parm不能去除,不能写成toas()。string[] parm为js调用native时传入的参数。
6、在res/xml/plugin.xml文件中注册接口
<plugin
className="com.iraid.toast.EUExToast" uexName="uexToast" >
<method name="toast" />
</plugin>
注意:uexToast命名规范。
7、若native需要回传数值给js,此时可以使用
jsCallback("uexVakten.vakten_auth", int, EUExCallback.F_C_TEXT, "");
public void toast(String[] parm){
Toast.makeText(context, "success" + parm[0], Toast.LENGTH_LONG).show();
jsCallback("uexVakten.vakten_auth", successCode, EUExCallback.F_C_TEXT, sessionId);
}
8、在js中使用
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/index.css">
<script type="text/javascript">
function callBackAuth(opCode, dataType, data){
//opCode为native调用jsCallback中的successCode参数
alert(opCode);
//data为native调用jsCallback中的sessionId参数
alert(data);
}
window.uexOnload = function(type){
//type 为native调用jsCallback中的successCode参数
if(type == 0){
uexVakten.vakten_auth = callBackAuth;
}else{
uexVakten.vakten_auth = callBackAuth;
}
}
function toast(toast){
uexVakten.authDevice();
}
</script>
</head>
<body>
<div class="tit">uexDemo对象</div>
<div class="conbor">
<div class="consj">
<input type="button" class="btn" value="Toast" onclick="toast('dddd');">
</div>
</div>
</body>
</html>
9、生成ide导入插件包,插件包包括jar文件夹、dex文件夹、info.xml、plugin.xml、res文件夹(非必须)、AndroidManifest.xml(非必须)、so文件夹(非必须)。
jar文件夹:存放自己插件的native code导出的jar包
dex文件夹:存放经过android dex工具生成自己插件的native code导出的jar包的dex jar包。
info.xml:记录插件的描述
<?xml version="1.0" encoding="utf-8"?>
<uexplugins>
<plugin uexName="uexToast" version="1.0" build="0">
<info>toast功能</info>
</plugin>
</uexplugins>
plugin.xml:测试工程中的plugin.xml文件
res文件夹:若使用了资源文件,则将资源文件放入res文件夹中,res文件夹目录与android工程中的res目录相同
so文件夹:若使用了so库,则需要将so库放入so文件夹中
AndroidManifest.xml:只需要放入本插件用的的设置,如权限,组件。
10、将9中的文件/文件夹放入同一个文件夹中,然后压缩成zip文件,上传appcan ide中,在生成安装文件时选择该插件。
更多问题解决方法:http://newdocx.appcan.cn/newdocx/docx?type=1361_1359
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories