十分钟开发一个调用Activity的PhoneGap插件_第1页
十分钟开发一个调用Activity的PhoneGap插件_第2页
十分钟开发一个调用Activity的PhoneGap插件_第3页
十分钟开发一个调用Activity的PhoneGap插件_第4页
十分钟开发一个调用Activity的PhoneGap插件_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 在HybridApp开发中,很多业务我们是没有办法通过HTML5+js实现的,比如调用第三方的包含Activity的jar包,一些必须使用原生代码才能实现的功能,比如复杂的UI的效果,调用通讯相关的协议栈,第三方支付sdk等。这种情况我们需要通过写cordova插件的方式,包装Android原生代码为插件,供上层JavaScript调用。本文讲解一个调用Activity并返回Activity结果的cordova插件例子,帮助大家掌握cordova plugin的开发 。     Cordova插件是通过cordova plugin add (插件包名需要在cor

2、dova plugins官方注册,或插件代码存放的Git地址)添加,通过cordova plugin rm 插件包名删除。一个插件主要文件包括插件配置文件plugin.xml,插件描述文件package.json,平台相关的资源和源码,可以包括图片,xml,Java源码,jar包,so静态库等。下面是我做的android图案锁屏cordova插件的目录结构。插件目录结构            可以看到这个插件支持iOS和android平台,包含源码和图片资源,还是挺复杂的。       

3、;我们今天介绍的不会这么麻烦了,只是简单的调用Activity,先看config.xml配置文件config.xml代码html view plain copy 1. <?xml version="1.0" encoding="UTF-8"?>  2.   3. <plugin xmlns="/cordova/ns/plugins/1.0"  4.  

4、60;  id="com.qianmi.cordova.demoapp"  5.     version="0.0.3">  6.     <name>DemoPlugin</name>  7.     <description>Qianmi <span style="font-f

5、amily: Arial, Helvetica, sans-serif;">DemoPlugin </span><span style="font-family: Arial, Helvetica, sans-serif;"> Plugin</description></span>  8.     <license>Apache 2.0<

6、;/license>  9.     <keywords>Qianmi,<span style="font-family: Arial, Helvetica, sans-serif;">DemoPlugin</span><span style="font-family: Arial, Helvetica, sans-serif;"></keywords>

7、;</span>  10.   11.   <js-module src="www/demo.js" name="demo">  12.     <clobbers target="cordova.plugins.demo" />    <!-js中调用的名字啊 -> &

8、#160;13.   </js-module>  14.   15.      16.     <!- android ->  17.     <platform name="android">  18.   19.     

9、;    <config-file target="res/xml/config.xml" parent="/*">  20.             <feature name="DemoApp">  21.       &

10、#160;         <param name="android-package" value="com.qianmi.cordova.demoapp<span style="font-family: Arial, Helvetica, sans-serif;">" /></span>  22.   

11、;23.             </feature>  24.         </config-file>  25.      26.         <source-file src=

12、"src/android/DemoApp.java" target-dir="src/com/qianmi/cordova/demoapp /></span>  27.   28.     </platform>  29.   30. </plugin>  插件www/js的代码javascript view plain copy 1.

13、 var argscheck = require('cordova/argscheck'),  2.     utils = require('cordova/utils'),  3.     exec = require('cordova/exec');  4.   5.   6. var 

14、;DemoApp = function ()   7. ;  8.   9.   10. /ExitApp  11. <pre name="code" class="javascript">DemoApp<span style="font-family: Arial, Helvetica, sans-serif;">

15、;.exit = function () </span>  console.log('-exit'); exec(null, null, "DemoApp", "demoAction", null, null, null);module.exports = DemoApp;插件java代码     重点的插件java代码(只是示例啊,不完整的)给Activity传值,接受返回结果,回传给js都在这里了javascript vie

16、w plain copy 1. public class LockPattern extends CordovaPlugin   2.     private static final String TAG = "LockPattern"  3.   4.     private static

17、60;final String NICK_NAME = "nickName"  5.     private static final String MODE = "mode"  6.   7.     public static final int REQUEST_CODE_S

18、ET_LOCK_PATTERN = 10001;  8.     public static final int REQUEST_CODE_VERIFY_LOCK_PATTERN = 10002;  9.   10.        11.     private CallbackContext

19、60;mCallbackContext;  12.   13.   14.     Override  15.     public boolean execute(String action, JSONArray args,  16.            

20、 CallbackContext callbackContext) throws JSONException   17.         Log.i(TAG, action + "   " + args);  18.         mCallbac

21、kContext = callbackContext;  19.           20.                         Intent intent = new 

22、;Intent().setClass(  21.                                 cordova.getActivity(),  22.       

23、;                          LockPatternActivity.class);  23.                 

24、0;       intent.putExtra(MODE, LockPatternActivity.MODE_STEP_1);  24.                         intent.putExtra(NICK_NAME, nick

25、Name);  25.                         this.cordova.startActivityForResult(this, intent,  26.           

26、0;                     REQUEST_CODE_SET_LOCK_PATTERN);  27.                   28.   2

27、9.         return false;  30.       31.   32.     Override  33.     public void onActivityResult(int requestCode, int resultCode,&

28、#160;Intent data)   34.         Log.i(TAG, "-onActivityResult:" + requestCode + "   " + resultCode);  35.   36.       &#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论