91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

移動web中間件phonegap三(插件編寫)

發布時間:2020-07-23 03:28:19 來源:網絡 閱讀:2149 作者:雪飄七月 欄目:開發技術

前言

   現在phonegap雖然提供了很多中插件API,但難免會不夠全,不夠滿足我們的需求!這時候我們就可以通過自己編寫插件來完善這些功能。


   phonegap的插件主要分兩部分:一部分是前臺頁面js調用插件的接口,還有一部分就是后臺做的處理。


下面我以我寫的一個刪除文件功能為例,先來看前臺js代碼:

removefile : function(path,cb){
    //定義插件刪除方法
    window.deletebook = function(path, callback) {
        //自定義插件的核心
        cordova.exec(callback, function(err) {
            callback('Nothing to echo.');
        }, "MyEcho", "deletebook", [path]);
    };
    //調用插件刪除方法
    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        window.deletebook(path, function(echoValue) {
            //console.log(echoValue + " success");
            if(echoValue == "true"){
                cb();
            }
        });
    }
}

插件的核心在于cordova.exec(successCB,failedCB,pluginName,action,data);

這個函數中五個參數分別為:

successCB 調用成功后的回調函數

failedCB 調用失敗后的回調函數

pluginName 插件名

action 插件方法

data 調用插件向后臺傳遞的參數,格式為數組


接下來我們來看一下后臺的代碼:

package org.apache.cordova;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.join.messenger.MessageCode;
import org.json.JSONArray;
import org.json.JSONException;
import android.os.Bundle;
import com.lemote.ebook.Ebook;
public class MyEcho extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        System.out.println("================action:"+action);
        if(action.equals("deletebook")){
            System.out.println("deletebook!");
            String filepath = args.getString(0);
            String returninfo = "false";
            String whole_filepath = "/mnt/sdcard/"+filepath;
            System.out.println("whole_filepath:"+whole_filepath);
            if(MyFileUtil.removeFile(whole_filepath)){
                System.out.println("刪除成功!");
                returninfo = "true";
            }
            this.echo(returninfo, callbackContext);
            return true;
        }
        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.");
        }
    }
}

execute(String action, JSONArray args, CallbackContext callbackContext)中三個參數分別為:

   action 插件方法

   args 傳遞過來的參數,獲取方法為args.getString(數組中的位置);

callbackContext 回調函數

回調成功的函數callbackContext.success(message)

回調失敗的函數callbackContext.error(message)


除了前臺js接口和后臺方法,還有一個非常重要的就是串聯前后臺的東西:

res/xml/config.xml中加入如下代碼:

<plugin name="MyEcho" value="org.apache.cordova.MyEcho" />

"MyEcho"為前臺js調用的pluginName

"org.apache.cordova.MyEcho"為插件在后臺的類文件


這樣phonegap插件還做不到的就可以通過自己編寫java代碼來實現了!



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡族自治县| 盘山县| 北流市| 阿坝县| 平度市| 宁明县| 旬邑县| 广饶县| 卢氏县| 明光市| 宜兰县| 中西区| 噶尔县| 子长县| 合作市| 海兴县| 佳木斯市| 林芝县| 三穗县| 如东县| 宁远县| 精河县| 小金县| 华亭县| 富锦市| 宣城市| 宜都市| 德阳市| 乌什县| 于都县| 尤溪县| 大田县| 宁武县| 丰原市| 同仁县| 会宁县| 西和县| 龙州县| 上栗县| 周口市| 来宾市|