cordova 及插件相关命令

安装phonegap和cordova,直接使用nodejs的npm下载安装: 
npm install -g phonegap 
npm install -g cordova 
检验语句: 
phonegap -version 
cordova -version 
如果上面安装成功,就可以使用phonegap创建混合开发应用了: 
phonegap create my-app 
cd my-app 

phonegap run android



plugman
http://blog.csdn.net/weixin_37730482/article/details/74989726

http://blog.csdn.net/b2259909/article/details/52471178

1.1 使用plugman工具创建plugin demo:

a. npm install -g plugman


b. 安装成功后就可以使用plugman命令生成Cordova插件模板

cmd中定位到你要生成插件的位置 cmd中输入

plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]

plugman create --name PluginDemo --plugin_id org.apache.plugindemo --plugin_version 1.0.0


c. 添加安卓平台

plugman platform add --platform_name android


d. 生成json文件,提交plugin需要此文件

plugman createpackagejson D:\Cordova\CordovaPlugin\PluginDemo


e. 修改plugin.xml内容,只在android平台修改这一句:

source-file src=”src/Android/PluginDemo.Java” target-dir=”src/plugindemo/PluginDemo

为:

source-file src=”src/android/MyMath.Java” target-dir=”src/plugindemo

为什么修改这里: 因为如果不修改,PLuginDemo.java会拷贝到src/plugindemo/PluginDemo这个包下,等会对应不上,这个估计是plugman的bug。只要知道一个事情,在Android平台下,plugin.xml下的:

param name=”android-package” value=”plugindemo.PluginDemo”

定义Android平台下的底层实现的 ***包名.类*** : plugindemo 是包名,PluginDemo 是类名如果不对应,修改路径或者xml。

f. 修改www/PluginDemo.js为对应需求


g. 将插件提交到某个Cordova项目中

cmd中定位到要插入的Cordova项目,提交刚刚生成的插件到指定 Cordova 项目中

cordova plugin add D:\Cordova\CordovaPlugin\PluginDemo

项目的plugin文件夹下新增org.apache.PluginDemo文件夹,即添加plugin成功


h. 将Cordova项目D:\Cordova\CordovaDemo\NumberDemo\platforms android项目导入的androidstudio 中


i. 修改PluginDemo.java文件对应内容


j. 修改index.js index.html对应内容



1.2 PhoneGap plugin 工作流程:


a. index.html 按钮唤起js函数->

    <button οnclick="pluginDemo();">PluginDemo</button>

b. index.js 调用 –>
function pluginDemo(){
       cordova.plugins.PluginDemo.coolMethod(arg0, success, error)
}

c. PluginDemo.js cordova的接口
var exec=require('cordova/exec');
exports.coolMethod=function(arg0, success, error){
      exec(success, error, “PluginDemo”, “coolMethod”, arg0);
};
d. PluginDemo.java 调用底层实现各自平台(ios或者Android)下的类 PluginDemo
public class PluginDemo extends CordovaPlugin{
    public boolean execute(..........){
        if (action.equals("coolMethod")){
           .....
           }
     }
}

1.3 cordova cli编译的gradle和android studio的gradle版本不同,需要手动修改
cordova cli: app buildgradle: com.android.tools.build:gradle:2.2.0

                      CordovaLib buildgradle: gradle:2.1.0

                      gradle-wrapper.propertie:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

android studio 3.0 canary 6: gradle:2.3.2

                                                    gradle-wrapper.propertie:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip



2 无法从github上添加plugin

原因:npm版本太低(-v 1.3.10)→nodejs是通过apt-get安装的。。

解决办法:下载nodejs安装包,解压安装之,并创建/usr/bin/npm /usr/bin/node /usr/local/bin/npm /usr/local/bin/node的软链接,此时npm(-v 3.10.10)

2.1 从github上添加plugin错误提示:

jiao@jiao-linux:~/AndroidStudioProjects/cordova/hello_1$ cordova plugin add https://github.com/heigeo/cordova-plugin-tensorflow.git
Error: Failed to fetch plugin https://github.com/heigeo/cordova-plugin-tensorflow.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: npm: Command failed with exit code 34 Error output:
npm WARN package.json com.phonegap.helloworld@1.0.0 No repository field.
npm WARN package.json TFPlugin@1.0.0 No repository field.
npm http GET https://github.com/heigeo/cordova-plugin-tensorflow.git
npm http 200 https://github.com/heigeo/cordova-plugin-tensorflow.git
npm ERR! not a package /home/jiao/tmp/npm-16374-hIPiU0GE/1505181886389-0.8421687281224877/tmp.tgz
npm ERR! Error: ENOENT, open '/home/jiao/tmp/npm-16374-hIPiU0GE/1505181886389-0.8421687281224877/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 4.2.0-42-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "https://github.com/heigeo/cordova-plugin-tensorflow.git" "--save"
npm ERR! cwd /home/jiao/AndroidStudioProjects/cordova/hello_1/node_modules
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.10
npm ERR! path /home/jiao/tmp/npm-16374-hIPiU0GE/1505181886389-0.8421687281224877/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/jiao/AndroidStudioProjects/cordova/hello_1/node_modules/npm-debug.log
npm ERR! not ok code 0

2.2 进入/usr/bin /usr/local/bin删除npm node nodejs

rm npm  etc……

2.3 删除掉npm后会遇到错误:

参考:http://www.foreverpx.cn/2014/11/29/Linux%E4%B8%ADnpm%E5%87%BA%E7%8E%B0npmlog%E6%89%BE%E4%B8%8D%E5%88%B0%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/

module.js:471
    throw err;
    ^

Error: Cannot find module 'npmlog'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at /usr/share/npm/bin/npm-cli.js:18:11
    at Object.<anonymous> (/usr/share/npm/bin/npm-cli.js:86:3)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)


2.4 根本解决:重新安装nodejs,并创建/usr/bin /usr/local/bin的软链接

安装参考:

http://www.cnblogs.com/liuqi/p/6483317.html

软链接最好把/usr/bin /usr/local/binl两个路径都创建了。。

apt-get那安装的nodejs卸载不了也不管了……


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值