1. 程式人生 > >Cordova自定義外掛

Cordova自定義外掛

現在混合式應用越來越流行,之前公司開發的一款是基於ionic的混合應用。總的來說,效果還不錯,也能基本上實現一套程式碼,多個平臺上跑,流暢性也還不錯。總體程式碼框架和可擴充套件性也還不錯。但是也遇到了一些問題:

  1. 網上大多數外掛都不太適用,需要自己開發
  2. 當時引入部分es6的語法,結果導致程式碼在老的手機上不能跑起來,這裡可以通過webpack打包的時候將es6的語法通過babel轉化成es5語法。
  3. 由於外掛和webview互動,通過js回撥函式,很容易形成 回撥金字塔。

這裡只說下android的cordova外掛開發。

曾經做過幾個:
1、是解壓縮,壓縮的外掛。當時網上沒有找到合適的。
2、下載檔案的外掛。
這裡就說一個最簡單,列印日誌,或者說彈出一個Toast。只要能夠調通,後面就是android或者ios的事情了。
開發外掛 cordova提供了一個叫做 plugman 的框架,這個工具能幫助我們生成一些外掛格式的目錄。如果你很精通的話,其實可以隨便找個別人的外掛。按照他的格式,把程式碼刪了自己寫。

建立個外掛

plugman create --name ToastPlugin  --plugin_id cordova-plugin-toast  --plugin_version 0.0.1

這裡會得到一個目錄結構,很簡單,看下就明白了,主要有三個檔案 .xml .js .java
先說下 .xml檔案

<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-toast" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>ToastPlugin</name>//這裡是js呼叫的物件 <js-module name="ToastPlugin" src="www/ToastPlugin.js"> <clobbers target="cordova.plugins.ToastPlugin" /> </js-module> <platform name="android"> 這裡是android的路徑配置,在新增外掛的時候,會將當前的檔案路徑,複製到android工程中指定的路徑。 <config-file
parent="/*" target="res/xml/config.xml">
<feature name="ToastPlugin"> <param name="android-package" value="cordova-plugin-toast.ToastPlugin" /> </feature> </config-file> <config-file parent="/*" target="AndroidManifest.xml" /> <source-file src="src/android/ToastPlugin.java" target-dir="src/cordova/plugin/toast/ToastPlugin" /> </platform> </plugin>

.js檔案

//引入exec這個cordova提供的執行函式
var exec = require('cordova/exec');

//下面隨便暴露出一個物件,供外面呼叫。
var myChajianFun = {
    showToast:function(arg0,success,error){
    //這裡的ToastPlugin是和.xml中feature對應,表示需要呼叫的檔案  這裡的ShowToast表示的是action。會當做引數傳入到.java檔案中。這樣一個外掛就可以實現多個功能
        exec(success, error, "ToastPlugin", "ShowToast", arg0);
    }
}
module.exports = myChajianFun;

看下.java檔案,將外掛安裝之後,開啟android studio可以看見外掛的程式碼。一個ToastPlugin的類集成了CordovaPlugin實現其中的exec方法。這裡的exec方法中的action就是上面的action。這樣就基本上構成了一整個的外掛。
寫cordova外掛不要急,其實很簡單。通過xml檔案約束需要向工程中新增的檔案。比如將.js檔案放在工程生成後的什麼目錄。.java放在生成目錄。像android.mainfest中寫入什麼樣的資訊。.js檔案中需要暴露出什麼物件等等。

最後說下,我當時做的時候,就是有問題調用不了。最後發現是我的demo工程中,沒有引入這兩個檔案

<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="cordova_plugins.js"></script>

祝你順利!

相關推薦

Cordova與現有框架的結合,Cordova外掛使用教程,Cordova定義外掛,框架整合Cordova,將Cordova整合到現有框架中

 一、框架整合cordova 將cordova整合到現有框架中 一般cordova工程是通過CMD命令來建立一個工程並新增Android、ios等平臺,這樣的建立方式可以完整的下載開發過程中所需要的的外掛。也是最方便和快捷一種方式。因此我們需要用這種方式將我們現有的框架放入到已建好的cordov

Cordova定義外掛

現在混合式應用越來越流行,之前公司開發的一款是基於ionic的混合應用。總的來說,效果還不錯,也能基本上實現一套程式碼,多個平臺上跑,流暢性也還不錯。總體程式碼框架和可擴充套件性也還不錯。但是也遇到了一些問題: 網上大多數外掛都不太適用,需要自己開發 當時引

cordova 定義外掛之完整流程

一.前期開發環境 1.android studio和xcode開發環境 2.安裝node.js  3.安裝plugman 4.命令工具環境(可以安裝git也可以使用系統自帶的工具,window的dos,ios的終端) 5.subline text3 主要用於編輯外掛的的檔案

phonegap(cordova) 定義外掛程式碼篇(四)----讀取本地圖片

有時候確實知道本地圖片地址,要獲取到base64  /** * 獲取本地圖片,包含路徑和壓縮後的 base64 */ (function (cordova) { var define = cordova.define; define("cordo

Cordova應用的JavaScript程式碼和定義外掛程式碼的除錯

我之前寫過三篇Cordova相關的技術文章。當我們使用Cordova將自己開發的前端應用打包安裝到手機上後,可能會遇到需要除錯Cordova應用的時候。 本文就介紹Cordova應用的除錯步驟。 如果大家讀過之前我寫的文章,就知道Cordova應用在移動平臺

vue定義外掛

官網教程 官網連結 開發外掛 外掛通常會為 Vue 新增全域性功能。外掛的範圍沒有限制——一般有下面幾種: 新增全域性方法或者屬性,如: vue-custom-element 新增全域性資源:指令/過濾器/過渡等,如 vue-touch 通過全域性 mixin 方法新增一些元件選

Cordova與現有框架的結合,Cordova插件使用教程,Cordova定義插件,框架集成Cordova,將Cordova集成到現有框架中

語言 camera platform 都是 err duration sets 平臺 cordova 一、框架集成cordova 將cordova集成到現有框架中 一般cordova工程是通過CMD命令來創建一個工程並添加Android、ios等平臺,這樣的創建方式可以完

TarsGo新版本釋出,支援protobuf,zipkin和定義外掛

本文作者:陳明傑(sandyskies) Tars是騰訊從2008年到今天一直在使用的後臺邏輯層的統一應用框架,目前支援C++,Java,PHP,Nodejs,Golang語言。該框架為使用者提供了涉及到開發、運維、以及測試的一整套解決方案,幫助一個產品或者服務快速開發、部署、測試、上線。 它集可擴充套件協

Adams 2013定義外掛方法zz

1.Adams外掛介紹 Adams的高階模組(如Controls控制模組、Vibration振動模組、Durability耐久性模組等)是以外掛的形式整合在Adams軟體中。通過Adams提供的外掛管理器(Plugin Manager)工具能非常方便地對這些外掛進行管理,即插即用,

maven定義外掛

建立一個Maven專案,具體怎麼建立略。 將pom.xml檔案的packaging 改為maven-plugin <packaging>maven-plugin</packaging> pom.xml中引入外掛依賴 <

給Android開發者的Ionic定義外掛

首先需要把Ionic的環境搭好,這裡我就不廢話了,相信看到這篇文章的各位都已經是使用過Ionic的人了 直接上教程 1.建立外掛 通過命令列建立外掛  格式:plugman create --name <pluginName> --plugin_id &l

Gradle 實現定義外掛

一、以庫專案形式建立外掛 1.建立專案 如果僅僅是自己專案中來自定義外掛,不對外發布,那麼可以按照以下的語法來構建目錄 1.1  建立一個Module,選擇Java Library專案,專案名稱必須是 buildSrc,否則外掛不被識別 1.2 構建目錄 buildSrc/sr

vue-cli 3.x 定義外掛併發布到 npm

乾貨轉載——https://www.cnblogs.com/wisewrong/archive/2018/12/28/10186611.html 全是知識點吶 趕緊記下來啊 一、調整專案結構 首先用 vue-cli 建立一個 default 專案 // 順便安利一篇文章《Vue 爬坑之路(十二)——

定義外掛-讓IE9以下的瀏覽器支援H5屬性placeholder

自從有了H5讓我們喜也讓我們憂,新特性用起來很炫、很酷提高了不少工作效率,但不得不考慮該死的IE瀏覽器(從此微軟的形象一落千丈)。 在H5中我們會使用placeholder屬性來實現文字水印提示資訊。 <input placeholder="智學無憂IT教育"&g

定義外掛實現網易雲音樂首頁圖片輪播

編寫html介面 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>網易雲音樂

一些通用的js工具類,新增定義外掛

common_t.js /** * 通用工具元件 對原有的工具進行封裝,自定義某方法統一處理&lt;br&gt; * ^_^ * * Author: em.D * Date: 2016-05-17 * Version: 0.0.1 */ function send_htt

layui定義外掛citySelect 省市區三級聯動選擇

citySelect.js /** * @ name : citySelect 省市區三級選擇模組 * @ Author: aggerChen * @ version: 1.0 */ layui.define(['layer','form','element','laytp

Ionic定義外掛開發(附Demo)

前言 ionic是目前比較火的一個移動端混合開發框架.其中外掛開發是其實現混合開發的主要方式.這裡我就大概記錄下自己自定義外掛的一些心得.如有不好之處,還望各位看官指出。 建立自定義外掛 1.安裝plugman,該工具主要用於建立一個自定義的外掛 npm in

Kettle — 定義外掛

Kettle開發體系是基於外掛的,平臺自身提供介面,開發者按照規範實現介面就能進行外掛的開發。在Kettle8.1的官方文件上有關於外掛非常詳細的介紹,如果有任何疑問可以先去官方文件檢視。下面先介紹一下需要進行外掛開發最基本的原理。 外掛型別 在Kettle中外掛涵蓋以下

Gradle定義外掛,釋出專案到jcenter

1、Gradle自定義外掛 原始碼:百度雲【Gradle Plugin】 方法一:直接寫在 build.gradle中。 (僅適用於當前moudle) 方法二:plugin原始碼放到rootProjectDir/buildSrc/src/mai