Android 平台下Cordova 调用Activity插件开发
首先建立一个包名为package com.JiajiaCy.CallActivity;
package com.JajaCy.CallActivity; import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
import org.json.JSONException; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; public class CallActivityPlugin extends CordovaPlugin { public static final String ACTION ="call"; @Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals(ACTION)) {
try {
//下面两句最关键,利用intent启动新的Activity
Intent intent = new Intent().setClass(cordova.getActivity(), Class.forName(args.getString(0)));
this.cordova.startActivityForResult(this, intent, 1);
//下面三句为cordova插件回调页面的逻辑代码
PluginResult mPlugin = new PluginResult(PluginResult.Status.NO_RESULT); mPlugin.setKeepCallback(true);
callbackContext.sendPluginResult(mPlugin);
callbackContext.success("success"); } catch (Exception e) {
e.printStackTrace();
return false;
}
}
return true;
} /**
* onActivityResult为第二个Activity执行完后的回调接收方法
* */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent){
switch (resultCode) { //resultCode为回传的标记,我在第二个Activity中回传的是RESULT_OK
case Activity.RESULT_OK:
Bundle b=intent.getExtras(); //data为第二个Activity中回传的Intent
String str=b.getString("change01");//str即为回传的值
break;
default:
break;
}
}
}
在res\xml\config.xml中添加:
<feature name="CallActivity">
<param name="android-package" value="com.JajaCy.CallActivity.CallActivityPlugin"/>
</feature>
在assets\www\plugins\com.JajaCy.CallActivity目录下建一个CallActivity.js
cordova.define('com.JajaCy.CallActivity.CallActivityPlugin', function(require, exports, module) {
var exec=require('cordova/exec'); module.exports={
/**
param:data
*/
activityPlugin:function(data){
/**
一共五个参数
第一个 :成功会掉
第二个 :失败回调
第三个 :将要调用的类的配置名字(在config.xml中配置 稍后在下面会讲解)
第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分)
第五个 :传递的参数 以json的格式
*/
exec(nativePluginResultHandler,nativePluginErrorHandler,"CallActivity","call",[data])
}
}
}); /**
成功时调用的方法
*/
function nativePluginResultHandler (result) {
alert("SUCCESS: \r\n"+result );
}
/**
失败时调用的方法
*/
function nativePluginErrorHandler (error) {
alert("ERROR: \r\n"+error );
}
在cordova_plugins.js文件中进行如下配置:
{
"file": "plugins/com.JajaCy.CallActivity/CallActivity.js",
"id": "com.JajaCy.CallActivity.CallActivityPlugin",
"clobbers": [
"window.call"
]
}
module.exports.metadata =
// TOP OF METADATA
{
"com.JajaCy.CallActivity":"0.0.1"
}
调用的时候使用:
window.call.activityPlugin("com.JajaCy.CallActivity.DownloadActivity;");
最后需要在AndroidManifest.xml中进行配置Activity:
<activity android:name="DownloadActivity"></activity>
这样就可以完成Cordova调用Activity
Android 平台下Cordova 调用Activity插件开发的更多相关文章
- [转帖]Android平台下OpenGL初步
原文请看 Android平台下OpenGL初步 本文只关注于如何一步步实现在Android平台下运用OpenGl. 1.GLSurfaceView GLSurfaceView是Android应用程序中 ...
- Android平台下Dalvik层hook框架ddi的研究
通过adbi,可以对native层的所有代码进行hook.但对于Android系统来说,这还远远不够,因为很多应用都还是在Dalvik虚拟机中运行的. 那么,有没有什么办法可以对Dalvik虚拟机中跑 ...
- Android平台下的TCP/IP传输(客户端)
在工科类项目中,嵌入式系统与软件系统或后台数据库之间的信息传输是实现“物联网”的一种必要的途径,对已简单概念的物联网,通常形式都是一个单片机/嵌入式系统实现数据的采集及其处理,通过蓝牙,wifi或者是 ...
- Android平台下OpenCV移植与使用---基于C/C++
在<Android Studio增加NDK代码编译支持--Mac环境>和<Mac平台下Opencv开发环境搭建>两篇文章中,介绍了如何使用NDK环境和Opencv环境搭建与测试 ...
- Cordova调用Activity
首先需要编写一个CallActivityPlugin插件,专门调用Activity package com.example.plugin; import org.apache.cordova.api. ...
- Android中多个调用Activity的问题
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" ...
- Android平台下的JNI开发
JNI是Java Native Interface的缩写,通过JNI可以方便我们在Android平台上进行C/C++编程.要用JNI首先必须安装Android的NDK,配置好NDK环境之后就可以在Ec ...
- Android平台下OpenGL初步
Android OpenGL ES 开发教程 从入门到精通 http://blog.csdn.net/zhoudailiang/article/details/50176143 http://blog ...
- Android平台下OpenGL图形编程
ref: Jayway Team Blog中OpenGL ES简明开发教程https://blog.jayway.com/tag/opengl-es/ OpenGL ES 开发教程http://www ...
随机推荐
- 5、qq物联开发步骤
1.QQ物联开发步骤 1)测试环境无需申请上线,即可任意调试.意思是什么呢,它是告诉大家,在调试的时候不要点击上面的提交上线,因为目还在调试此设备,一旦上线,QQ物联官方就会来审核你的设备,导致延长研 ...
- 解读Java中BigDecimal.ZERO.compareTo()的返回值含义
Java compareTo() 用法 例如: public static void main(String[] args) { BigDecimal bnum1, bnum2; bnum1 ...
- [TypeStyle] Load raw CSS in TypeStyle
TypeStyle tries to be an all in one CSS in JS management solution so you can always fall back to raw ...
- bc-win32-power-echo-vim-not-work
http://gnuwin32.sourceforge.net/packages.html linux ok, but win32 not ok [root@130-255-8-100 ~]# ech ...
- [转载]Ocelot简易教程(五)之集成IdentityServer认证以及授权
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9807125.html 最近比较懒,所以隔了N天才来继续更新第五篇Ocelot简易教程,本篇教程会先简单介 ...
- 使用Perl分割文件
使用Perl分割文件 特性 使用换行作为分界 忽略注释行# 分割存入新指定的文件中 待分割的文件test.lst wwdg/prescaler syscfg/test1 syscfg/test2 ua ...
- HttpClient基础教程 分类: C_OHTERS 2014-05-18 23:23 2600人阅读 评论(0) 收藏
1.HttpClient相关的重要资料 官方网站:http://hc.apache.org/ API:http://hc.apache.org/httpcomponents-client-4.3.x/ ...
- TreeMap、HashMap、ConcurrentSkipListMap之性能比较
比较Java原生的 3种Map的效率. 1. TreeMap 2. HashMap 3. ConcurrentSkipListMap 结果: 模拟150W以内海量数据的插入和查找,通过增加和查找 ...
- Android自定义组件系列【5】——进阶实践(1)
接下来几篇文章将对任老师的博文<可下拉的PinnedHeaderExpandableListView的实现>分步骤来详细实现,来学习一下大神的代码并记录一下. 原文出处:http://bl ...
- 微信小程序初步运营方案
小程序的运营方案有很多种,目前我们遇到两个事情需要解决:1.问答的内容,这块也是大家比较关心的话题.内容的定位和细节. 2.预热与推广,就这两个问题,我列出了一些自己的想法和小程序初步运营方案,有不足 ...