Cordova调用Activity
首先需要编写一个CallActivityPlugin插件,专门调用Activity
- package com.example.plugin;
- import org.apache.cordova.api.CallbackContext;
- import org.apache.cordova.api.CordovaPlugin;
- import org.apache.cordova.api.PluginResult;
- import org.json.JSONArray;
- import org.json.JSONException;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- 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;
- }
- }
- }
然后配置CallActivityPlugin插件res/xml/config.xml
- <plugin name="CallActivityPlugin" value="com.example.plugin.CallActivityPlugin"/>
接着利用js调用插件(callActivity.js)
- window.callActivityPlugin = function(str,callback) {
- cordova.exec(callback, pluginFailed, "CallActivityPlugin", "call", [ str ]);
- };
- var pluginFailed = function(message) {
- alert("failed>>" + message);
- }
- $(function() {
- init();
- });
- var init = function() {
- console.log("phonegap init!!");
- document.addEventListener("deviceready", onDeviceReady, true);
- }
- var onDeviceReady = function() {
- console.log("deviceready event fired");
- window.callActivityPlugin("com.example.activity.MyActivity" , function(echoValue) {
- console.log("callActivityPlugin echo>>");
- });
- };
最后html页面加载(相对简单)
- <!DOCTYPE html>
- <html>
- <head>
- <title>Device Properties Example</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript" charset="utf-8" src="../js/jquery-1.8.3.js"></script>
- <script type="text/javascript" charset="utf-8" src="../js/cordova-2.3.0.js"></script>
- <script type="text/javascript" charset="UTF-8" src="../js/callActivity.js"></script>
- </head>
- <body>
- <p id="callActivityPlugin">callActivityPlugin</p>
- <a href="../index.html">返回</a>
- </body>
- </html>
新的Activity代码(相对简单)
- package com.example.activity;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import com.example.ask.R;
- public class MyActivity extends Activity {
- private Button btn;
- private int flag = 0;
- private Intent intentNew = null;
- private Context context = this;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.my_activity_main);
- intentNew = this.getIntent();
- btn = (Button) findViewById(R.id.button1);
- btn.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- Intent mIntent = new Intent();
- mIntent.putExtra("change01", "1000");
- mIntent.putExtra("change02", "2000");
- // 设置结果,并进行传送
- setResult(RESULT_OK, mIntent);
- finish();
- }
- });
- }
- }
Cordova调用Activity的更多相关文章
- Android 平台下Cordova 调用Activity插件开发
首先建立一个包名为package com.JiajiaCy.CallActivity; package com.JajaCy.CallActivity; import org.apache.cordo ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- 十分钟开发一个调用Activity的PhoneGap插件
在HybridApp开发中,非常多业务我们是没有办法通过HTML5+js实现的,比方调用第三方的包括Activity的jar包,一些必须使用原生代码才干实现的功能,比方复杂的UI的效果,调用通讯相关的 ...
- 请阐述调用Activity有哪几种方法,并写出相关的Java代码
请阐述调用Activity有哪几种方法,并写出相关的Java代码. 答案:可以采用两种方式调用Activity:显示调用和隐式调用.显示调用直接指定了Activity,代码如下: Intent int ...
- cordova调用本地SQLite数据库的方法
第一篇技术博客,写下来和大家分享今天所学,其次自己也巩固一下. 整个下午的时间用来钻研如何用cordova调用移动端本地SQLite数据库.首先我并不是用eclipse来编程的,而是用cordova建 ...
- Android 开发笔记(一) 按钮事件调用Activity
UI创建按钮及事件 Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);mEmailSignInB ...
- 如何在adapter 中调用activity的方法
如何在adapter 中调用activity的方法 2015-08-07 17:06匿名 | 浏览 808 次 iWorkjavaAndroid public class HistoryData e ...
- cordova调用第三方应用
cordova 帮助webapp 达到调用原生系统的功能 项目需求:在项目中调用系统中含有的第三方地图应用 需求其实分为两步: 1. 查找本地地图应用 2.成功调起本地应用 首先需要安装两个插件,安装 ...
- andriod fragment调用Activity函数方法
(1)新增一个activity public MainActivity getMainActivity(); } (2)在MainActivity 的Java文件中增加 getMainActivit公 ...
随机推荐
- E - Power Strings,求最小周期串
E - Power Strings Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u S ...
- 设置viewport进行缩放
<meta name="viewport" content="width=320,maximum-scale=1.3,user-scalable=no"& ...
- javascript中 IE事件处理程序中try catch用法
本例是学习中笔记 望指正批评! <input id='b1' type='button' value='按钮'/> <script> window.onload=functio ...
- Azure 云助手正式发布
Azure云服务在中国市场风生水起,越来越多的用户选择Azure作为平台将业务转向云端.随着移动互联网在中国的蓬勃发展,手机应用的体验深入人们的生活及工作.用户管控云服务也不应该只局限于电脑前,而是可 ...
- UVa 10747 - Maximum Subsequence
题目大意:给出n个数,从中选取k个,使得乘积最大,并且尽量使和最大 分析:首先按照数的绝对值大小排序.然后就要分三大类情况讨论: (1)前k个中选到0:如果选到0的话,乘积一定是0,所以尽量选大的数, ...
- SQLITE SUBSTR
insert into t_user values(4,'u1234567890'); sqlite> select substr(username,1,1) from t_user where ...
- C特殊浮点值NaN
特殊浮点值NaN(Not-a-Number),例如asin()函数返回反正弦值,所以输入参数不能大于1,否则函数返回NaN值,printf()显示为nan,NaN或类似形式.
- jQuery 事件 - load() 方法
例子:$("img").load(function(){ $("div").text("Image loaded"); }); 定义和用法 ...
- 用CSS变形创建圆形导航
http://www.w3cplus.com/css3/building-a-circular-navigation-with-css-transforms.html 本文由陈毅根据SARA SOUE ...
- map遍历的四种方法
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...