美文网首页
ionic3编写插件调用aar.

ionic3编写插件调用aar.

作者: 瞧俺老孙的 | 来源:发表于2018-06-08 10:32 被阅读95次

    ionic3如何编写插件,我这里就不详细描述了,给出一个参考地址参考这里

    重点说的是如何调用aar以及关于activity 的问题。

    1.使用plugman生成对应的插架的目录。

        cd ionic-how-to-create-cordova-plugin

        mkdir plugins_src

        cd plugins_src

        plugman create --name HelloWorld --plugin_id cordova-plugin-hello-world --plugin_version 0.0.1

        cd HelloWorld

        plugman platform add --platform_name android

        plugman platform add --platform_name ios

        cd ..

        cd ..

        ionic cordova plugin add plugins_src/HelloWorld

    最后一步基本都会报错,因为我们缺少一个 packagejson的文件,plugman提供了这个功能。

    2.使用 plugman 生成配置文件

        plugman createpackagejson .

    简单回答一些问题,生成的packagejson 看起来有点像这样

        {

        "name": "HelloWorld",

        "version": "0.0.1",

        "description": "HelloWorld",

        "cordova": {

        "id": "cordova-plugin-hello-world",

        "platforms": [

        "android",

        "ios"

        ]

        },

        "keywords": [

        "ecosystem:cordova",

        "cordova-android",

        "cordova-ios"

        ],

        "author": "Garfield",

        "license": "ISC"

        }

    **这里面有个坑,虽然我的例子里面是用了 cordova-plugin-hello-world  这样的插件名字,但是我不建议你这么做,在我的编译环境下,java 没有办法认识带有中横线的包,我索性都改成了 . **

    3. 目录结构

    拷贝你的.aar到你的 plugins_src 下面,然后建立一个空白的build.gradle,这里的内容我们待会儿在添加。

    4 利用你的Android Studio,拷贝需要的gradle

    在AS下如何使用aar ,这个应该就相对简单了吧,新建一个工程,然后新建模块,导入aar,就行了。

    如果你的aar 有需要的依赖,也一起填进来。这个时候查看你的工程的build.gradle ,我们需要拷贝其中

        repositories{

        jcenter()

        flatDir{

          dirs 'libs'

        }

        }

        dependencies {

        compile(name:'youraarfile', ext:'aar')

        compile 'com.google.code.gson:gson:2.2.4'

        compile 'com.android.support:support-v13:26.1.0'

        }

      android {

          defaultConfig {

              minSdkVersion 16

              targetSdkVersion 22

          }

          packagingOptions {

              exclude 'META-INF/NOTICE'

              exclude 'META-INF/LICENSE'

          }

          }

    其中重要的地方是:   

        compile(name:'youraarfile', ext:'aar')

    5  修改plugin.xml

    这里面有几个重点,

    添加

    第二个重点是 如果你的aar 里面有activity ,也需要添加进来。

    如果你不知道aar 里面有什么,把aar的后缀改成zip,然后解压缩,同样可以看到 AndroidManifest.xml。

    其中关于Activity 的部分拷贝到你的plugin.xml 中。

    6 编写代码

    插件.java 中如果用到了 activity ,会出现一个提示,

        Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

    大致的意思是 你想从一个 Activity 的外部呼叫这个 Activity的话 ,需要一个 FLAG_ACTIVITY_NEW_TASK 标志。

    //下面最关键,利用intent启动新的Activity

                Intent intent = new Intent(cordova.getActivity(), youaarfile.Activity.class);

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                intent.putExtra("mode","auth");

                intent.setPackage(this.cordova.getActivity().getApplicationContext().getPackageName());

                if (this.cordova != null) {

                    this.cordova.startActivityForResult((CordovaPlugin) this, intent, 0);

                }

    7 至于在page里面如何调用plugin 类似下面就可以了

        declare var cordova: any;

        cordova.plugins.yourplugin.coolMethod({

              _sMessage: "Hello World"

            }, success, failure);

    相关文章

      网友评论

          本文标题:ionic3编写插件调用aar.

          本文链接:https://www.haomeiwen.com/subject/jiyosftx.html