zoukankan      html  css  js  c++  java
  • phoneGap的Android下编写phonegap 插件

    一、 javascript 端的编写

       第一个参数 成功的回调函数

      第二个参数 失败的回调函数

      第三个参数 是插件的类名称,也就是后台java文件的类名

      第四个参数 执行的 action 名称    对应的是后台java代码中的action名称

      第五个参数 传递的参数是一个数组

    function helloworld(success,error,option){
      cordova.exec(success, error, "HelloWorld", "echo", option);//option也可以使用[xxx,xxx],他是一个数组
    }
    $(document).ready(function(){                      
             document.addEventListener("deviceready",onDeviceReady,false); 
          
    });
    function onDeviceReady(){     
        helloworld(function(succ){
            alert('成功'+succ);        
        },function(err){
            alert('失败:'+err);
        },['HelloMobileWorld','testWorld']);
    }  
    
    function helloworld(success,error,option){
        cordova.exec(success, error, "HelloWorld", "echo1", option);
    }

    二、注册插件

      在Android :res/xml/  这个目录下的配置文件下注册

    <feature name="HelloWord">
       <param name="android-package" value="org.apache.cordova.helloword.HelloWord"/>
    </feature>

    三、 设置权限(需要调用权限的地方设置权限) 

    <uses-permission android:name="android.permission.SEND_SMS" />

    四、java 代码编写

      1、创建一个包列如:com.example.phonegap.plugin

      2、包里创建一个class 列如:HelloWorld

    package com.example.phonegap.plugin;
    
    import org.apache.cordova.api.CallbackContext;
    
    import org.apache.cordova.api.CordovaPlugin;
    import org.apache.cordova.api.PluginResult;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    public class HelloWorld extends CordovaPlugin {
        @Override
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
            if (action.equals("echo")) {   //action=echo  这里对应的就是JavaScript端的第四个参数 ,如果跟里面的参数不一样是不会执行下面的代码的
                String message = args.getString(0);  //获取第五个参数  数组中的元素  HelloMobileWorld            
           this.echo(message, callbackContext); return true; }else{ callbackContext.error("这不是一个echo操作"); return false; } } private void echo(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) { callbackContext.success(message); } else { callbackContext.error("Expected one non-empty string argument."); } } }
  • 相关阅读:
    tableau prep 转置-pivot
    tabeau 画Slopegraph斜面图
    java栈
    java快速排序
    java冒泡排序
    java实现双向链表
    五、使用依赖注入取代硬连接资源(静态工厂、单例),也可用于构造方法、bulider模式
    转 String的不变性 immutable
    三、使用私有构造方法(公开成员属性或者公开静态工厂方法)或者枚举类实现singleton
    有状态对象和无状态对象
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4587119.html
Copyright © 2011-2022 走看看