Phonegap 自定义插件

Posted work hard work smart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Phonegap 自定义插件相关的知识,希望对你有一定的参考价值。

一、PhoneGap中js与Java之间相互调用分为同步和异步两种方式

1、同步:js调用Java类的方法,然后Java类的方法直接返回一个值给js端

2、异步:js调用Java类的方法,Java类的方法可能要处理一系列的事情。执行完后,通过回调把结果返回js端。

 

二、下面以android为例,通过插件实现js调用java类中的方法

1.创建cordova 工程

2. 在Android Studio打开

3. 在Index.html

 <button id="showToast">Show Toast</button>

4. 在Index.js中加入插件执行方法

exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);

在onDeviceReady中加入

document.getElementById("showToast").addEventListener("click",app.showToast);

 showToast方法就是调用插件的方法

    showToast: function(){
          cordova.exec(
                        function(){},
                        function(){},
                        "Toast",
                        "show",
                        ["hello man"]);
    },

  5. 创建插件

public class MyToast  extends CordovaPlugin{
    @Override
    public boolean execute(String action, JSONArray args,
                           CallbackContext callbackContext) throws JSONException {
        if ("show".equals(action)){
            show(args, callbackContext);
        }
        return super.execute(action, args, callbackContext);
    }

    public void  show(JSONArray args, CallbackContext callbackContext){
        try {
            Toast.makeText(cordova.getActivity(),args.getString(0), Toast.LENGTH_LONG).show();
        }catch (JSONException e){
            e.printStackTrace();
        }

        callbackContext.success();
    }
}

 

继承CordovaPlugin, 并实现execute方法。 action对应exec的第四个参数

6. xml中config.xml配置

    <feature name="Toast">
        <param name="android-package" value="com.example.tostplugin.MyToast" />
    </feature>

  Toast对应exec的第三个参数, value值com.example.tostplugin.MyToast 为插件的包名。

7. 效果图

 

  

以上是关于Phonegap 自定义插件的主要内容,如果未能解决你的问题,请参考以下文章

VSCode插件开发全攻略代码片段设置自定义欢迎页

自定义 PhoneGap 插件 (iOS) 功能问题

如何在 phonegap 构建中使用自定义 BarcodeScanner 插件?

如何在 iOS 中使用自定义 phonegap 3.3 插件

无法在 Cordova/Phonegap 中编辑自定义 Java 插件

Phonegap 自定义插件