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."); } } }
  • 相关阅读:
    转载:备份HyperV时需要避免的六大错误
    职场必读blog
    sps 2010 出错记录
    MySQL的一些常用命令
    JS 常用 函数
    批处理 启动/关闭 VMware服务
    SQL Server 复制 发布订阅(SQL Server 数据同步)
    JBoss7 入门指南
    SQLServer 数据库 远程备份
    QuickFix/J
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4587119.html
Copyright © 2011-2022 走看看