为什么80%的码农都做不了架构师?>>>   

常用插件推荐

1.cordova-plugin-camera 相机拍照

安装:

cordova plugin add cordova-plugin-camera

获取照片:

camera.getPicture(successCallback, errorCallback, options)

关于options的详细说明: http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/index.html#module_camera.CameraOptions

2.cordova-plugin-device 检查当前操作系统和设备情况

安装:

cordova plugin add cordova-plugin-device

属性:

device.cordova
device.model
device.platform
device.uuid
device.version
device.manufacturer
device.isVirtual
device.serial

3. cordova-plugin-file 文件

安装:

cordova plugin add cordova-plugin-file

创建一个永久的文件:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {console.log('file system open: ' + fs.name);fs.root.getFile("newPersistentFile.txt", { create: true, exclusive: false }, function (fileEntry) {console.log("fileEntry is file?" + fileEntry.isFile.toString());// fileEntry.name == 'someFile.txt'// fileEntry.fullPath == '/someFile.txt'writeFile(fileEntry, null);}, onErrorCreateFile);}, onErrorLoadFs);

创建一个临时文件:

window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function (fs) {console.log('file system open: ' + fs.name);createFile(fs.root, "newTempFile.txt", false);}, onErrorLoadFs);function createFile(dirEntry, fileName, isAppend) {// Creates a new file or returns the file if it already exists.dirEntry.getFile(fileName, {create: true, exclusive: false}, function(fileEntry) {writeFile(fileEntry, null, isAppend);}, onErrorCreateFile);}

写文件:

function writeFile(fileEntry, dataObj) {// Create a FileWriter object for our FileEntry (log.txt).fileEntry.createWriter(function (fileWriter) {fileWriter.onwriteend = function() {console.log("Successful file read...");readFile(fileEntry);};fileWriter.onerror = function (e) {console.log("Failed file read: " + e.toString());};// If data object is not passed in,// create a new Blob instead.if (!dataObj) {dataObj = new Blob(['some file data'], { type: 'text/plain' });}fileWriter.write(dataObj);});
}

读文件:

function readFile(fileEntry) {fileEntry.file(function (file) {var reader = new FileReader();reader.onloadend = function() {console.log("Successful file read: " + this.result);displayFileData(fileEntry.fullPath + ": " + this.result);};reader.readAsText(file);}, onErrorReadFile);
}

更多使用方式: http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#append-a-file-using-alternative-methods-

4.cordova-plugin-file-transfer 文件上传和下载

安装:

cordova plugin add cordova-plugin-file-transfer

例子:

// !! Assumes variable fileURL contains a valid URL to a text file on the device,
//    for example, cdvfile://localhost/persistent/path/to/file.txtvar win = function (r) {console.log("Code = " + r.responseCode);console.log("Response = " + r.response);console.log("Sent = " + r.bytesSent);
}var fail = function (error) {alert("An error has occurred: Code = " + error.code);console.log("upload error source " + error.source);console.log("upload error target " + error.target);
}var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
options.mimeType = "text/plain";var params = {};
params.value1 = "test";
params.value2 = "param";options.params = params;var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);

自定义headers和onprocess:

function win(r) {console.log("Code = " + r.responseCode);console.log("Response = " + r.response);console.log("Sent = " + r.bytesSent);
}function fail(error) {alert("An error has occurred: Code = " + error.code);console.log("upload error source " + error.source);console.log("upload error target " + error.target);
}var uri = encodeURI("http://some.server.com/upload.php");var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
options.mimeType="text/plain";var headers={'headerParam':'headerValue'};options.headers = headers;var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {if (progressEvent.lengthComputable) {loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);} else {loadingStatus.increment();}
};
ft.upload(fileURL, uri, win, fail, options);

下载文件:

// !! Assumes variable fileURL contains a valid URL to a path on the device,
//    for example, cdvfile://localhost/persistent/path/to/downloads/var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");fileTransfer.download(uri,fileURL,function(entry) {console.log("download complete: " + entry.toURL());},function(error) {console.log("download error source " + error.source);console.log("download error target " + error.target);console.log("upload error code" + error.code);},false,{headers: {"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="}}
);

终止传输:

// !! Assumes variable fileURL contains a valid URL to a text file on the device,
//    for example, cdvfile://localhost/persistent/path/to/file.txtvar win = function(r) {console.log("Should not be called.");
}var fail = function(error) {// error.code == FileTransferError.ABORT_ERRalert("An error has occurred: Code = " + error.code);console.log("upload error source " + error.source);console.log("upload error target " + error.target);
}var options = new FileUploadOptions();
options.fileKey="file";
options.fileName="myphoto.jpg";
options.mimeType="image/jpeg";var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);
ft.abort();

更多使用方式: http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/index.html#installation

5.cordova-plugin-geolocation 获取经纬度

安装:

cordova plugin add cordova-plugin-geolocation

例子:

    // onSuccess Callback// This method accepts a Position object, which contains the// current GPS coordinates//var onSuccess = function(position) {alert('Latitude: '          + position.coords.latitude          + '\n' +'Longitude: '         + position.coords.longitude         + '\n' +'Altitude: '          + position.coords.altitude          + '\n' +'Accuracy: '          + position.coords.accuracy          + '\n' +'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +'Heading: '           + position.coords.heading           + '\n' +'Speed: '             + position.coords.speed             + '\n' +'Timestamp: '         + position.timestamp                + '\n');};// onError Callback receives a PositionError object//function onError(error) {alert('code: '    + error.code    + '\n' +'message: ' + error.message + '\n');}navigator.geolocation.getCurrentPosition(onSuccess, onError);

6.cordova-plugin-inappbrowser 浏览器,用于打开文件

安装:

cordova plugin add cordova-plugin-inappbrowser

使用:

var ref = cordova.InAppBrowser.open(url, target, options);

ref是对目标window的引用

更多用法: http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/index.html#installation

7.cordova-plugin-splashscreen 显示App启动时的过渡页面

安装:

cordova plugin add cordova-plugin-splashscreen

资源目录结构:

projectRoothooksplatformspluginswwwcssimgjsresscreenandroidioswindows

配置文件:

<platform name="android"><!-- you can use any density that exists in the Android project --><splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/><splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/><splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/><splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/><splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/><splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/><splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/><splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform><platform name="ios"><!-- images are determined by width and height. The following are supported --><splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/><splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/><splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/><splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/><splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/><splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/><splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/><splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/><splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/><splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
</platform>
<preference name="SplashScreenDelay" value="10000" />

控制显示: 是否自动隐藏:

<preference name="AutoHideSplashScreen" value="true" />

延迟:

<preference name="SplashScreenDelay" value="3000" />

禁用:

<preference name="SplashScreenDelay" value="0"/>
<preference name="FadeSplashScreenDuration" value="0"/>

淡出:

<preference name="FadeSplashScreen" value="false"/>

淡出时间:

<preference name="FadeSplashScreenDuration" value="750"/>

手动操作:

navigator.splashscreen.show();
window.setTimeout(function () {navigator.splashscreen.hide();
}, splashDuration - fadeDuration);

圈圈

<preference name="ShowSplashScreenSpinner" value="false"/>

8.cordova-plugin-appversion 获取版本

cordova plugin add cordova-plugin-appversion

使用:

console.log(AppVersion.version); // e.g. "1.2.3"
console.log(AppVersion.build); // e.g. 1234

10.phonegap-plugin-barcodescanner 条码和二维码扫描

安装:

cordova plugin add phonegap-plugin-barcodescanner

使用:

cordova.plugins.barcodeScanner.scan(function (result) {//  console.log("We got a barcode\n" +//        "Result: " + result.text + "\n" +//        "Format: " + result.format + "\n" +//        "Cancelled: " + result.cancelled);let r_array = result.text.split(",");let obj = {};for(let i=0;i<r_array.length;i++){let o = r_array[i].split(":");obj[o[0]] = o[1];}//  alert(JSON.stringify(obj));let param = {type:obj["类型"],id:obj["ID"]};sessionStorage.setItem("tunnel",JSON.stringify(obj));location.hash = "/qrcode_page";},function (error) {alert("Scanning failed: " + error);},{// "preferFrontCamera" : true, // iOS and Android"showFlipCameraButton" : true, // iOS and Android"prompt" : "Place a barcode inside the scan area", // supported on Android only"formats" : "QR_CODE,PDF_417", // default: all but PDF_417 and RSS_EXPANDED"orientation" : "landscape" // Android only (portrait|landscape), default unset so it rotates with the device}
);

11.com.sarriaroman.PhotoViewer 图片预览

安装:

cordova plugin add com-sarriaroman-photoviewer

使用:

PhotoViewer.show('http://my_site.com/my_image.jpg', 'Optional Title');

12.cordova-plugin-datepicker 日期选择

安装:

cordova plugin add cordova-plugin-datepicker

使用:

var options = {date: new Date(),mode: 'date'
};function onSuccess(date) {alert('Selected date: ' + date);
}function onError(error) { // Android onlyalert('Error: ' + error);
}datePicker.show(options, onSuccess, onError);

13.cordova-plugin-crosswalk-webview 第三方webview

安装:

cordova plugin add cordova-plugin-crosswalk-webview
cordova build android

输出路径:

/path/to/hello/platforms/android/build/outputs/apk/hello-x86-debug.apk
/path/to/hello/platforms/android/build/outputs/apk/hello-armv7-debug.apk

详细说明: https://www.npmjs.com/package/cordova-plugin-crosswalk-webview

14.cordova-plugin-fastrde-downloader 多文件下载器,可以解压zip

安装:

cordova plugin add https://github.com/fastrde/phonegap-downloader.git

使用:

//初始化
downloader.init({folder: "yourPersistantAppFolder", unzip: true});
//单文件下载
downloader.get("http://yourhost.de/some.zip");
//多文件下载
downloader.getMultipleFiles([{url:"http://yourhost.de/some1.zip"},{url:"http://yourhost.de/some2.zip"},{url:"http://yourhost.de/some3.zip"}
]);
//终止
downloader.abort();//事件
document.addEventListener(eventName, function(event){var data = event.data;
});
eventNames:
DOWNLOADER_initialized        data:none
DOWNLOADER_gotFileSystem      data:[cordova.fileSystem fileSystem]
DOWNLOADER_gotFolder          data:[cordova.fileEntry folder]
DOWNLOADER_error              data:[object error]
DOWNLOADER_noWifiConnection   data:none
DOWNLOADER_downloadSuccess    data:[cordova.fileEntry entry]
DOWNLOADER_downloadError      data:[object error]
DOWNLOADER_downloadProgress   data:[number percentage, string fileName]
DOWNLOADER_unzipSuccess       data:[string fileName]
DOWNLOADER_unzipError         data:[string fileName]
DOWNLOADER_unzipProgress      data:[number percentage, string fileName]
DOWNLOADER_fileRemoved        data:[cordova.fileEntry entry]
DOWNLOADER_fileRemoveError    data:[cordova.fileEntry entry]
DOWNLOADER_getFileError       data:[object error]
DOWNLOADER_fileCheckSuccess   data:[string md5sum, string fileName]
DOWNLOADER_fileCheckFailed    data:[string calculatedMd5sum, string md5, string fileName])
DOWNLOADER_fileCheckError     data:[object error]

15.cordova-sqlite-storage

安装:

cordova plugin add cordova-sqlite-storage

打开数据库:

var db = window.sqlitePlugin.openDatabase({name: 'my.db', location: 'default'}, successcb, errorcb);

旧版的兼容若出问题请看详细说明:

https://www.npmjs.com/package/cordova-sqlite-storage

//INSERT
db.executeSql('INSERT INTO MyTable VALUES (?)', ['test-value'], function (resultSet) {console.log('resultSet.insertId: ' + resultSet.insertId);console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected);
}, function(error) {console.log('SELECT error: ' + error.message);
});//SELECT
db.executeSql("SELECT LENGTH('tenletters') AS stringlength", [], function (resultSet) {console.log('got stringlength: ' + resultSet.rows.item(0).stringlength);
}, function(error) {console.log('SELECT error: ' + error.message);
});//batch
db.sqlBatch(['DROP TABLE IF EXISTS MyTable','CREATE TABLE MyTable (SampleColumn)',[ 'INSERT INTO MyTable VALUES (?)', ['test-value'] ],
], function() {db.executeSql('SELECT * FROM MyTable', [], function (resultSet) {console.log('Sample column value: ' + resultSet.rows.item(0).SampleColumn);});
}, function(error) {console.log('Populate table error: ' + error.message);
});

16.cordova-plugin-nativestorage

安装:

cordova plugin add cordova-plugin-nativestorage

使用:

NativeStorage.setItem("reference_to_value",<value>, <success-callback>, <error-callback>);
NativeStorage.getItem("reference_to_value",<success-callback>, <error-callback>);

转载于:https://my.oschina.net/wolfx/blog/676237

cordova开发日记04 常用插件与使用(更新2016-05-19)相关推荐

  1. Chrome(谷歌浏览器) 程序开发32个常用插件

    Chrome(谷歌浏览器) 程序开发32个常用插件 谷歌浏览器(Chrome)在2008年底才发布,但很快它已成为火狐(Firefox)有力竞争对手.之前,因为有大量的附加组件的支持,所以火 狐(Fi ...

  2. 超详细手把手教你cordova开发使用指南+自定义插件,jsbridge

    Cordova是什么 使用前端技术 开发跨平台web App的工具 底层原理:HTML+CSS搭建页面, JS和原生交互 交互原理:Cordova插件 环境配置 安卓开发基础环境搭建的文章可以参考一下 ...

  3. X64dbg-插件开发-字符编码-常用插件函数-回调结构

    文章目录 1.字符编码 2.常用插件函数 2.1 _plugin_debugpause 2.2 _plugin_debugskipexceptions 2.3 _plugin_logprintf 2. ...

  4. sublime开发python需要安装哪些插件_Sublime text 3搭建Python开发环境及常用插件安装...

    1. 按下Ctrl+Shift+P调出命令面板 2. 输入"package",在下拉列表找到"Package Control: list packages",选 ...

  5. 开发日记-20190422 关键词 插件化(1)概述

    不知道什么时候,javaer这个名词已经成为了一个很通用的词汇,指代那些只知道使用新技术,在新技术出现之后静观其变,等其成熟之后,再用极短的时间学习其用法,然后宣布已经掌握这门新技术的程序员.所谓缺乏 ...

  6. android 常用开发插件,Android Studio 开发利器【常用插件】

    1.ADB Idea ADB操作快捷菜单,快速清除数据,重启应用,卸载应用等 快捷键: Windows: Ctrl+Alt+Shift+A Mac OSX: Ctrl+Shift+A 当然,你可以在K ...

  7. VS CODE 微软旗下最好用的前端开发IDE编辑器+常用插件介绍

    推荐给广大前端开发人员一款轻便好用的编辑器:VS CODE,微软出品完全免费,官网地址:https://code.visualstudio.com 安装完成后自动会显示中文,如果需要设置字体主题样式等 ...

  8. Vscode下载安装使用教程_Vscode搭建Python开发环境_Vscode常用插件

    文章目录 1 下载 2 安装 3 搭建Python安装环境 4 推荐几款好用的插件 1 下载 官网 https://code.visualstudio.com/ 直接下载可能会很慢,所以我们用国内的镜 ...

  9. VS开发工具的常用插件

    转 http://www.spersky.com/post/vsPlugins.html 我目前主要用的是Hide Main Page--公司配给的电脑屏幕分辨率好小,还是1366*768的,去掉头可 ...

最新文章

  1. 进化深度神经网络是推动技术发展的强劲动力
  2. High Performance之android高性能之路
  3. php怎么从文件中读取数据库连接,PHP连接 读取 写入mysql数据库的方法 附常用代码...
  4. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
  5. SAP Cloud for Customer的Account Team里的role如何配置
  6. nssl1478-题【dp】
  7. linux刷命令脚本,linux – 如何调试bash脚本并获得每个命令的执行时间
  8. 【Python CheckiO 题解】All the Same
  9. linux内核启动过程4:内核运行时
  10. TensorFlow入门:TensorFlow工作原理
  11. rtt面向对象oopc——3.对官方IO设备模型框架图的补充绘图
  12. Windows 活动目录(AD)服务器系统升级到2012之最终域控服务器安装(五)
  13. java分配数组空间使用的关键字_创建数组时为数组元素分配内存空间的 Java 关键字是________(5.0分)_学小易找答案...
  14. opencv人脸检测报错,(-215:Assertion failed)cv::CascadeClassifier::detectMultiScale‘
  15. zxr10交换机配置手册vlan_中兴交换机配置命令
  16. 高德地图导航简单实例
  17. 掩码、子网掩码及子网划分
  18. pr制作节奏感抖动(变换)
  19. C语言:程序设计综合训练
  20. python人脸识别门禁系统_智能人脸识别门禁系统

热门文章

  1. python清除实例化类_在Python中,如何尝试(和排除)类的实例化?
  2. Oracle数据库exp和imp方式导数据
  3. linux内核关闭igmp,Linux kernel IGMP多个安全漏洞
  4. arm linux 蜂鸣器qt,Qt 程序中使用蜂鸣器 ioctl()
  5. MEMCACHED在集群环境下对并发更新是否保持数据一致
  6. 计算机英语讲课笔记06
  7. Spring Boot 案例:连接后台数据库实现用户登录
  8. 2017.3.4 wyd测试
  9. 【英语学习】【Level 07】U03 Amazing wonders L1 My hometown
  10. 【英语学习】【English L06】U03 House L3 How is your house hunt going?