Cordova自定义插件开发

   刚刚接触 phonegap 因为配环境遇到各种各样问题.,所以写一个篇文章希望能给大家节约点时间. 本文主讲windows系统下的phonegap的环境搭建 ,以Android视角为主.iOS用户可参考;

  

1:首先介绍搭建环境的基本准备:

java JDK   (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

2 android SDK  http://developer.android.com/sdk/index.html

3 Node         https://nodejs.org/en/

4 sublime       http://www.sublimetext.com/2:

2:接下来开始phonegap的安装了:

1:phonegap 官网 点击

在控制台运行命令:
    npm install -g phonegap                    ( Mac使用: sudo npm install -g phonegap )

//等待安装   完成后安装 cordova:

   npm install -g cordova                        ( Mac使用: sudo npm install -g cordova )

安装完成后

检验语句:

phonegap -version

cordova -version

3:cordova自定义插件

  自定义插件目录结构

    这里的 src 对应不同的平台,www 放我们的 javascript 文件,plugin.xml 是插件的配置文件。

  

下面了解下java文件的一些代码

            

下面说一下YouYunIMPlugin.js文件

        

导出

继续说一下非常重要的配置文件plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- id: 插件的标识-->
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" id="youyun-cn-plugin-im" version="1.0.0">
<!--name:插件的名称-->
<name>YouYunIMPlugin</name>
<!--description:描述信息-->
<description>YouYunIMPlugin Description</description>
<author>YouYun</author>
<license>Apache 2.0 License</license>
<engines>
<engine name="cordova" version=">=3.0.0" />
</engines>
<!--js-module:对应我们的 javascript 文件 src:属性指向 www/YouYunIMPlugin.js-->
<js-module src="www/YouYunIMPlugin.js" name="YouYunIMPlugin">
<clobbers target="YouYunIMPlugin" />
</js-module>
<!--platform:支持的平台-->
<!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="YouYunIMPlugin">
<param name="ios-package" value="YouYunIMPlugin" />
<param name="onload" value="true" />
</feature>
</config-file>
<config-file target="*-Info.plist" parent="YYSDKConfig">
<dict>
<key>CLIENT_ID</key>
<string>1-20082-3e1632fba5606ffd129dd9d08b8df64a-ios</string>
</dict>
<dict>
<key>SECRET</key>
<string>c5bcda37516e2c8dbd41baa2df74821c</string>
</dict>
</config-file>
<header-file src="src/ios/include/WChatCommon.h" target-dir="include" />
<header-file src="src/ios/include/WChatSDK+ServiceRequest.h" target-dir="include" />
<header-file src="src/ios/include/WChatSDK.h" target-dir="include" />
<header-file src="src/ios/YouYunIMPlugin.h" />
<header-file src="src/ios/YouYunApplicationHandler.h" />
<source-file src="src/ios/libWChatSDK.a" framework="true"/>
<source-file src="src/ios/include/public.der" target-dir="include"/>
<source-file src="src/ios/YouYunIMPlugin.m" />
<source-file src="src/ios/YouYunApplicationHandler.m" />
<!-- frameworks -->
<framework src="libz.dylib" weak="true" />
<framework src="libsqlite3.dylib" />
<framework src="CFNetwork.framework" />
<framework src="CoreTelephony.framework" />
<framework src="SystemConfiguration.framework" />
<framework src="Foundation.framework" />
<framework src="UIKit.framework" />
</platform>
<!-- android -->
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="YouYunIMPlugin">
<!--包名:io.youyun.cordova,类名:YouYunIMPlugin-->
<param name="android-package" value="io.youyun.cordova.YouYunIMPlugin" />
</feature>
</config-file>
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<meta-data android:name="CLIENT_ID" android:value="1-20082-3e1632fba5606ffd129dd9d08b8df64a-android"/>
<meta-data android:name="SECRET" android:value="c5bcda37516e2c8dbd41baa2df74821c"/>
</config-file>
<config-file target="AndroidManifest.xml" parent="/*">

<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true" android:resizeable="true" android:anyDensity="true" />
<!--设定的使用权限-->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</config-file>
<!--将src这个路径下的jar包拷贝到libs平台的libs文件夹下面去-->
<source-file src="src/android/commons-fileupload-1.2.1.jar" target-dir="libs"></source-file>
<source-file src="src/android/commons-httpclient-3.1.jar" target-dir="libs"></source-file>
<source-file src="src/android/commons-lang-2.6.jar" target-dir="libs"></source-file>
<source-file src="src/android/protobuf-java-2.4.1.jar" target-dir="libs"></source-file>
<source-file src="src/android/push-sdk-android-1.0.jar" target-dir="libs"></source-file>
<source-file src="src/android/weimi-sdk-android-1.0.0.jar" target-dir="libs"></source-file>

<source-file src="src/android/ChatApiCallback.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/ChatType.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouyunChatApi.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouyunChatApiImpl.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouYunIMPlugin.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouyunInstance.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouyunReceiveMsgThread.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
<source-file src="src/android/YouyunUtil.java" target-dir="src/cn/youyun/cordova/YouYunIMPlugin/"></source-file>
</platform>
</plugin>

如何使用插件

创建应用程序

  cordova create hello com.example.hello HelloWorld

添加平台

  cordova platform add android

  cordova platform add ios

完成后运行以下命令查看:

  cordova platfrom list

移除Android平台支持

  cordova platform rm android

安装插件

  cordova plugin add [自定义的插件目录]

删除插件

  cordova plugin rm [插件名称]

运行以下命令编译应用程序:

  cordova build或 cordova build android  //只针对Andorid平台编译

 


  

时间: 2024-10-26 19:29:02

Cordova自定义插件开发的相关文章

cordova跨平台app开发02_自定义插件开发与安装

视频地址:http://t.cn/RacmXiy cordova的自定义插件由js.原生代码文件(java.oc).plugin.xml三部分组成. cordvoa提供了命令来创建插件模版项目. 创建插件模版 1.     pluman的安装 npm install –g plugman 2.     在d:\cordovaplugins创建一个名称为helloplugins,id为com.zql. helloplugins,版本号为1.0.0的插件 cd D:\cordovaplugins p

cordova 自定义插件

cordova /phonegap 自定义插件 在使用cordova 的过程中,虽然官方提供的插件以及其他人开源的插件较多.但有时为了实现某种需求,还是需要自己编写插件. 以前总是会手动的配置cordova插件,具体可以参考phonegap手动配置插件 今天主要是介绍官方提供的plugman来创建插件 pluman的使用 首先,安装plumam npm install -g plugman 安装完之后,就可以创建plugin plugman create --name <pluginName>

Cordova+ ios 插件开发

//ios 插件开发 //Echo iOS Plugin Example //配置 在config.xml中 <platform name="ios"> <config-file target="config.xml" parent="/*"> <feature name="Echo"> <param name="ios-package" value="C

phonegap(cordova) 自定义插件代码篇(一)----IAP 应用内支付

appstore 中审核中,如果你app内卖的东西是个虚拟的产品,那么你有可能被要求不能使用第三方支付工具,只能使用 IAP 应用内支付功能. 使用这个功能需要在apple 开发者后台签合同,设置银行账号,设置价格,这个就不讲了,本篇主要讲phonegap中整合IAP的代码 /** * 苹果应用内支付 */ (function (cordova) { var define = cordova.define; define("cordova/plugin/applepay", funct

phonegap(cordova) 自定义插件代码篇(二)----android 自动更新

程序总要更新的,apple 等appstore 处理,android版 自动更新,上代码 /** * 检查并更新APP */ (function (cordova) { var define = cordova.define; define("cordova/plugin/updateApp", function (require, exports, module) { var argscheck = require('cordova/argscheck'), exec = requi

ionic2/cordova自定义插件集成aar包

首先,把aar放到MyPlugin下面的一个文件目录中,确保<framework>中src与其对应即可,然后新建一个和aar包同名的.gradle文件放在android文件夹下. 文档结构如下:   plugin.xml <platform name="android"> <!-- 其他代码 --> <source-file src="src/android/FsMobile-debug.aar" target-dir=&q

chrom浏览器自定义插件开发

1.首先定义文件夹命名为"mainifest" 2.进入文件夹创建文件mainifest.json,此文件为插件主配置文件 { "name": "Flutter", "manifest_version": 2, "version": "1.0", "description": "I Love coding!", "browser_acti

cordova插件开发

{//-------------------------------Cordova Plugin 插件开发------------------{//1. helloworld > cordova create hello > cd hello > dir /*目录如下 config.xml: // 配置文件 hooks目录: //存放自定义cordova命令的脚本文件.每个project命令都可以定义before和after的Hook,比如:before_build.after_buil

Android Cordova 插件开发之创建项目

使用命令行创建项目 cordova 创建项目的命令是 cordova create <dir> <packageName> <projectName> 第一个参数 < dir >:项目目录文件夹的名称 第二个参数< packageName >:项目的包名 第三个参数< projectName >:项目名称  那么,我们创建一个HelloWorld项目,通过命令行cd到项目要创建的根目录下,然后执行命令 cordova create h