[Cordova] Plugin裏使用Android Library

源碼 

前言

開發Cordova Plugin的時候,在Native Code裏使用第三方Library,除了能夠加速項目的時程、也避免了重複發明輪子的窘境。本篇文章介紹如何在Cordova的Plugin裏使用Android Library,主要爲本身留個紀錄,也但願能幫助到有須要的開發人員。javascript

  • 參考數據:java

    前言01

創建

Android中的第三方Library,除了能夠從網絡上取得以外,也能夠依照下列文章的步驟,創建一個本身的Android Library:「mylibrary.jar」。後續步驟,會拿這個mylibrary.jar作爲第三方Library來使用。android

接着要動手撰寫Cordova Plugin來使用Android Library,開發人員能夠依照下列文章的步驟,創建一個本身的Cordova Plugin:「clk-cordova-sample」。後續步驟,會拿這個clk-cordova-sample作爲Plugin主體來使用。web

使用

完成上列兩個步驟以後,開發人員會擁有Cordova Plugin:「clk-cordova-sample」、以及Android Library:「mylibrary.jar」。接着將mylibrary.jar放到clk-cordova-sample的src\android文件夾裏,而且修改clk-cordova-sample的plugin.xml,定義Cordova編譯的時候,要將mylibrary.jar複製到平臺項目的bins文件夾底下來進行編譯。apache

  • 複製mylibrary.jarjson

    <source-file src="src/android/mylibrary.jar" target-dir="libs" />
  • 完整plugin.xml網絡

    <?xml version="1.0" encoding="UTF-8"?>
    
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"        
            id="clk-cordova-sample" 
            version="1.0.0">
    
        <!-- metadata -->
        <name>CLK Cordova Sample</name>
        <description>CLK Cordova Sample的說明</description>
        <license>Apache 2.0</license>
    
        <!-- javascript -->
        <js-module name="NotificationService" src="www/clk.cordova.sample.NotificationService.js" >
            <clobbers target="clk.cordova.sample.NotificationService" />
        </js-module>
    
        <!-- android -->
        <platform name="android">        
            <!-- config -->
            <config-file target="res/xml/config.xml" parent="/*">
                <feature name="NotificationService">
                    <param name="android-package" value="com.clk.cordova.sample.NotificationService"/>
                </feature>
            </config-file>        
            <!-- source -->
            <source-file src="src/android/NotificationService.java" target-dir="src/com/clk/cordova/sample/NotificationService" />
            <source-file src="src/android/mylibrary.jar" target-dir="libs" />
        </platform>
    
    </plugin>

完成上列步驟後,接着動手修改clk-cordova-sample裏NotificationService.java,來使用mylibrary.jar裏面所提供的Class。ui

  • NotificationService.javathis

    package com.clk.cordova.sample;
    
    import org.apache.cordova.*;
    import org.json.*;
    import android.widget.Toast; 
    import myLibrary.MyClass;
    
    public class NotificationService extends CordovaPlugin {
    
        // methods
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    
            // show
            if(action.equals("show")) {
    
                // test
                MyClass x = new MyClass();
                String message = "Hi " + x.getMessage();
    
                // execute
                Toast.makeText(this.cordova.getActivity(), message, Toast.LENGTH_LONG).show();
    
                // return
                return true;
            }
    
            // default
            return false;       
        }
    }

最後,執行clk-cordova-sample裏的範例APP。就能夠在執行畫面上,看到一個Toast窗口顯示從Library取得的訊息內容,這也就完成了Cordova Plugin使用Android Library的相關開發步驟。spa

  • 顯示回傳訊息

    使用01


     




附件列表

相關文章
相關標籤/搜索