Cordova自定義外掛
現在混合式應用越來越流行,之前公司開發的一款是基於ionic的混合應用。總的來說,效果還不錯,也能基本上實現一套程式碼,多個平臺上跑,流暢性也還不錯。總體程式碼框架和可擴充套件性也還不錯。但是也遇到了一些問題:
- 網上大多數外掛都不太適用,需要自己開發
- 當時引入部分es6的語法,結果導致程式碼在老的手機上不能跑起來,這裡可以通過webpack打包的時候將es6的語法通過babel轉化成es5語法。
- 由於外掛和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 /** * 通用工具元件 對原有的工具進行封裝,自定義某方法統一處理<br> * ^_^ * * 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