• [Cordova] Plugin里使用Android Library


    [Cordova] Plugin里使用Android Library

    前言

    开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程、也避免了重复发明轮子的窘境。本篇文章介绍如何在Cordova的Plugin里使用Android Library,主要为自己留个纪录,也希望能帮助到有需要的开发人员。

    • 参考数据:

      前言01

    建立

    Android中的第三方Library,除了可以从网络上取得之外,也可以依照下列文章的步骤,建立一个自己的Android Library:「mylibrary.jar」。后续步骤,会拿这个mylibrary.jar做为第三方Library来使用。

    接着要动手撰写Cordova Plugin来使用Android Library,开发人员可以依照下列文章的步骤,建立一个自己的Cordova Plugin:「clk-cordova-sample」。后续步骤,会拿这个clk-cordova-sample做为Plugin主体来使用。

    使用

    完成上列两个步骤之后,开发人员会拥有Cordova Plugin:「clk-cordova-sample」、以及Android Library:「mylibrary.jar」。接着将mylibrary.jar放到clk-cordova-sample的srcandroid文件夹里,并且修改clk-cordova-sample的plugin.xml,定义Cordova编译的时候,将mylibrary.jar加入到平台项目的文件夹来进行编译。

    • 加入mylibrary.jar

      <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。

    • NotificationService.java

      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的相关开发步骤。

    • 显示回传讯息

      使用01

    范例下载

    范例程序代码:下载地址

  • 相关阅读:
    missing requires of libmysqlclient.so.18()(64bit)
    Ambari安装HDP问题:User root is not allowed to impersonate anonymous.User: hcat is not allowed to impersonate ambari-qa
    ambari2.6.50 openssl 版本问题:SSLError: Failed to connect. Please check openssl library versions. Openssl error upon host registration
    HDP 2.6 requires libtirpc-devel
    Kafka 如何读取offset topic内容 (__consumer_offsets)
    Linux集群时间同步方法
    centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署
    Centos7.3离线(rpm方式)安装mysql服务
    ubuntu安装rpm的方法
    kerberos环境storm配置:Running Apache Storm Securely
  • 原文地址:https://www.cnblogs.com/clark159/p/5010278.html
Copyright © 2020-2023  润新知