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."); } } }
  • 相关阅读:
    monkey命令
    adb常用命令(二)
    mysql语句
    sql常用命令
    mysql数据库操作
    adb常用命令(一)
    find命令
    火狐浏览器不支持<th>绝对定位
    jsp页面动态拼接资源访问地址
    如果有一个20g的日志文件,日志文件记录着用户访问过的url,每一行为一个url,给你一台512M的主机,找出出现次数最多的10个url?
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4587119.html
Copyright © 2011-2022 走看看