zoukankan      html  css  js  c++  java
  • 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. 效果图

      

  • 相关阅读:
    AC日记——与7无关的数 openjudge 1.5 39
    AC日记——计算多项式的导函数 openjudge 1.5 38
    AC日记——矩阵交换行 openjudge 1.8 01
    AC日记——阶乘和 openjudge 1.6 15
    AC日记——求10000以内n的阶乘 openjudge 1.6 14
    逻辑运算
    PLC控制设计的基本步骤
    Micropython通用控制
    class Pin --控制I/O引脚
    Micropython入门实操心得
  • 原文地址:https://www.cnblogs.com/linlf03/p/7081147.html
Copyright © 2011-2022 走看看