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公 ...
随机推荐
- magnetom模板制作
我个人认为Magento模板制作的难点在于不了解Magento的架构,不会调动block.Magento的block调动几乎都是靠xml.在下面的内容会提及如何操作. 制作Magento模板的前提是: ...
- I.MX6 console 跳过 login
/*************************************************************************** * I.MX6 console 跳过 logi ...
- igv
integrative genomics viewer 下载: http://www.broadinstitute.org/igv/download 下载前要注册 导入参考基因组:http://www ...
- SAP 审计
SAP 权限审计:SA38--- RSUSR002 还有其它事务码待续,,,
- shamir叠像术 分类: 图像处理 2015-07-08 16:50 17人阅读 评论(1) 收藏
K=imread('SHNU.bmp'); height=info.Height; width=info.Width; A=zeros(height,width); B=zeros(height,wi ...
- activiti工作流数据库表详细介绍 (23张表)
Activiti的后台是有数据库的支持,所有的表的表名都以ACT_开头,表名的第二部分是用来表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repositor ...
- JavaWeb学习记录(一)——response响应头之缓存设置与下载功能的实现
一.HTTP中常用响应头 Location: http://www.it315.org/index.jsp Server:apache tomcat Content-Encoding: gzip Co ...
- JAVA基本语义简介
1.标识符 标识符可以有字母.数字.下划线(_).美元符($)组成,但不能包含@.%.空格等其他特殊符,不能以数字开头. 标识符不能是JAVA关键字和保留字(JAVA预留的关键字,以后的升级版中有可能 ...
- android ant 多渠道批量打包
注:本文转载于:http://blog.csdn.net/zz7zz7zz/article/details/8915701 前言: 利用ant 可实现多渠道,批量打包. 正文: 思想:通过循环更改An ...
- jquery获取高度错误(可以获取到宽度,但获取不到高度),及解决办法
<div class="foo"> <div style="display: none;"> 3333333 </div> ...