ionic3 -自定义插件

作者:猿奇
链接:www.jianshu.com/p/9d8c7b7558d8
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如有疑问,可评论联系作者,热心解答,从不怼人。。。

1 安装 plugman 插件

npm --registry https://registry.npm.taobao.org install -g plugman

2 新建组件

新建一个插件文件夹,进入插件文件夹。例如新建Plugins文件夹,然后执行下面语句

plugman create --name cordova-plugin-zxing-scan --plugin_id cordova-plugin-zxing-scan  --plugin_version 3.28.19 --path D:\remoteRes\project\plugins
说明:
--name cordova-plugin-zxing-scan//自定义插件名称
--plugin_id cordova-plugin-zxing-scan //自定义插件的包名
--plugin_version 3.28.19//自定义插件版本

执行上述命令后会在Plugins文件夹下生成一个cordova-plugin-zxing-scan文件夹,并且cordova-plugin-zxing-scan文件夹内包含如下内容:

cordova-plugin-zxing-scan|——src |——www |——plugin.xml

3 生成平台(android/ios)插件代码
进入插件的根目录,然后执行创建android或者ios的平台支持命令
cd cordova-plugin-zxing-scan

plugman platform add --platform_name android
npm init
// npm init 给plugin加package.json

命令执行后在cordova-plugin-zxing-scan/src目录下出现了android目录,并且多了一个cordova-plugin-zxing-scan.java文件,打开cordova-plugin-zxing-scan.java文件,更改java文件名为zxingScan.java

package com.cordova.zxing.scan;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * This class echoes a string called from JavaScript.
 */
public class zxingScan extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("coolMethod")) {
            String message = args.getString(0);
            this.coolMethod(message, callbackContext);
            return true;
        }
        return false;
    }

    private void coolMethod(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }
}

plugin.xml 修改为如下:

<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-zxing-scan" version="3.28.19" xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android">
  <name>cordova-plugin-zxing-scan</name>
  <engines>
    <engine name="cordova" version="&gt;=3.0.0"/>
  </engines>
  <js-module name="zxingScan" src="www/zxingScan.js">
    <clobbers target="window.plugins.zxingScan"/>
  </js-module>
  <platform name="android">
    <config-file parent="/*" target="res/xml/config.xml">
      <feature name="zxingScan">
        <param name="android-package" value="com.cordova.zxing.scan.zxingScan"/>
      </feature>
    </config-file>
    <config-file parent="/*" target="AndroidManifest.xml">
      <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    </config-file>
    <source-file src="src/android/zxingScan.java"
                 target-dir="src/cordova-plugin-zxing-scan/zxingScan"/>
    <!--<framework src="src/android/plugin.gradle" custom="true" type="gradleReference"/>-->
    <!-- Depend on v21 of appcompat-v7 support library -->
   <!-- <framework src="com.android.support:appcompat-v7:21+" />-->
    <!-- Depend on library project included in plugin -->
    <!--<framework src="lib" custom="true" />-->
  </platform>
</plugin>

4 添加到项目
cd 到项目目录

ionic cordova plugin add file:./plugins/cordova-plugin-zxing-scan
npm install --save file:.\plugins\cordova-plugin-zxing-scan

添加成功之后,执行

ionic cordova platform remove android 
ionic cordova platform add android@6.3.0
ionic cordova run android --prod --aot
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343