1. 程式人生 > >Cordova從零開始外掛開發-支付寶外掛(一)

Cordova從零開始外掛開發-支付寶外掛(一)

這兩天APP開發基本進入尾聲,但有一個最後的難題發生了,就是支付。就目前而言,大家一般都在用的手機(移動)支付方式無非就是三種;

支付寶、微信、網銀(銀聯)支付;本文著重講一下支付寶外掛的開發,其他兩種類似。

支付寶方面:需要簽約,商戶公鑰,商戶私鑰,支付寶公鑰,商戶parentID等一些資訊,請參考支付寶整合開發文件或使用度娘搜尋。

Cordova下的支付寶外掛,度娘搜了一下,好多說的有頭沒尾的,讓人看了更頭疼;要不就是收費的,哎,對於咱這種苦逼屌絲程式猿來說,傷不起!

沒辦法,只能自己來搞;於是各種搜尋Cordova外掛開發例子,教程等,講的都是大同小異的內容,沒有適合的步驟來做,然初學者無從下手;

本文將從零開始講解,如何開發外掛,並已一個例子--支付寶外掛來講解。

注:小弟也初學。講得不好,大神勿噴!

1、建立cordova工程專案

cordova create plugdemo com.demo.plugdemo plugdemo

2、新增支援平臺

cd plugdemo

cordova platform add android

3、匯入eclipse,進行外掛開發。

匯入步驟:右鍵新建->Other

在嚮導中選擇如圖所示。

選擇專案所在目錄,勾選列表中出現的2個專案,點選Finish即可

這裡可以把專案重新命名也可以。改名後注意引用的更改。

匯入成功後,目錄結構如下圖

可以看到,預設的assets中是沒有檔案的,但在目錄結構中是可以看到的;這裡右鍵plugdemo->Properties(屬性)或者選中專案按Alt+Enter也可以開啟屬性視窗

開啟後,展開Resource->Resource Filters,在右側的視窗中,將Exclude all中顯示的全部去除即可顯示。

這裡匯入專案部分介紹完畢!下面開始做第一個Hello World的外掛demo。

一、在 src 資料夾中建立一個 com.demo.plugs 包,在包內建立一個 PlugHelloWorld.java 檔案,編寫下面的程式碼:

package com.demo.plugs;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;

import android.content.Context;
import android.widget.Toast;

public class PlugHelloWorld extends CordovaPlugin {
	public boolean execute(String action , JSONArray args, CallbackContext callbackContext ){
		/*顯示一個提示語*/
        Context Activity = this.cordova.getActivity().getApplicationContext();
        Toast.makeText(Activity, "你好!世界!", Toast.LENGTH_LONG).show();
        /*顯示一個提示語*/

        return true;
    }
}
外掛必須繼承自 CordovaPlugin 類,而包名和外掛名是自定義的。

外掛必須包含一個 execute 方法,它是唯一可以被 JavaScript 直接呼叫的方法。

二、在 res/xml/config.xml 檔案 <widget></widget> 標籤內加入下面的程式碼

<feature name="PlugHelloWorld">
	    <param name="android-package" value="com.demo.plugs.PlugHelloWorld" />
	</feature>

name:方法名  value:包名+方法名。

三、新增JS引用,除錯外掛執行。

在assets/www/index.html中新增如下程式碼:

<div class="app">
       <h1>Apache Cordova</h1>
       <div id="deviceready" class="blink">
       <p class="event listening">Connecting to Device</p>
       <p class="event received">Device is Ready</p>
        <input type = "button" value="點選我測試外掛執行效果!" onclick="a1()" />
       </div>
</div>


在assets/www/js/index.js檔案 onDeviceReady方法中新增如下程式碼:

function a1(){
	cordova.exec(success,error,"PlugHelloWorld",null,[]);
}

引數解釋:

success:外掛執行成功的回撥函式

error:外掛執行失敗的回撥函式

PlugHelloWorld:外掛方法名

null:外掛中如果定義多個方法,如set,get,select等方法,這裡指定要執行的方法名。execute方法無需指定。

[]:引數,即執行方法的傳遞引數,JSON資料格式。

可暫時無需關心回撥,即success和error均設定為null即可。

到此,一個簡單的外掛編寫已完畢,執行APP可以測試看看效果。

若顯示中文出現亂碼,請自行度娘解決。