-
cordova 3.x入门
apache cordova 3.x(aka phonegap)的基础知识、实用插件、源码分析、实例开发。
最近更新文章
这个系列是基于cordova 3.x的,很多android的东西都是eclipse adt ant的,而目前android的开发已经完全切换到了android studio gradle,需要大家特别注意!cordova在不断 ...
应用中经常要启动其他应用,比如:打开市场为自己的应用打分、强制用户更新应用、强制chrome打开网页等等。在调用之前,你有必要知道要调用的应用是否在机器上已经安装。(很多通过url scheme启动的应用如果没有安装的话就没有任何提示)
这个插件很小,也很简单,但是还是比较实用的。在android环境下它通packagemanager来检查id是否存在,在ios环境下通过canopenurl检查机 ...
通过url scheme来启动app是一种很常见的做法,比如:
系统程序:
tel:1-408-555-5555
sms:1-408-555-1212
mailto:frank@wwdcdemo.example.com
应用市场:
google play
market://details?id=your.package.name
amazon appstore
amzn://apps/andro ...
在http://rensanning.iteye.com/blog/2020843已经介绍过通过cordova cli创建cordova工程。
cordova生成的android工程主要来自于以下目录:
引用c:\documents and settings\rensanning\.cordova\lib\android\cordova\3.4.0\bin\templates\project
其中 ...
src/android/android/nativeapiprovider.js js->native的具体交互形式
// file: src/android/android/nativeapiprovider.js
define("cordova/android/nativeapiprovider", function(require, exports, module) ...
执行cordova.js的入口就以下2行代码:
// 导入cordova
window.cordova = require('cordova');
// 启动处理
require('cordova/init');
src/cordova.js 事件的处理和回调,外部访问cordova.js的入口
其中第一步是加载整个模块系统和外部访问cordova.js的入口,基于事件通道提供了整体的事件 ...
作为观察者模式(observer)的一种变形,很多mv*框架(比如:dojo、backbone.js)中都提供发布/订阅模型来对代码进行解耦。cordova.js中也提供了一个自定义的pub-sub模型,基于该模型提供了一些事件通道,用来控制通道中的事件什么时候以什么样的顺序被调用,以及各个事件通道的调用。
src/common/channel.js的代码结构也是一个很经典的定义结构(构造函数、实 ...
类似于java的package/import,在javascript中也有类似的define/require,它用来异步加载module化的js,从而提高运行效率。
define 定义注册一个module
require 加载使用一个module
模块化加载的必要性,起源于nodejs的出现。但是javascript并没有内置模块系统,所以就出现了很多规范。
主要有2种:commonjs和amd(a ...
前提环境:
引用platform: android
version: 3.4.0
(1)cordova.js/cordova_plugins.js文件
cordova.js在创建android工程的时候,是从cordova的lib目录下copy到platforms\android\assets\www\cordova.js的。同时备份到platforms\android\platform_www ...
(1)node.js的使用
cordova cli基于node.js,所以有必要知道nodejs最基本的知识。
// define:1个module1个js文件
exports.printfoo = function(){ return "foo" }
// import
var foo = require('./foo.js');
// call
console.lo ...
插件地址:https://github.com/initsogar/cordova-webintent
(1)创建工程
引用cordova create hellowebintent com.rensanning.cordova hellowebintent
cd hellowebintent
cordova platform add android
(2)安装plugin
引用cordov ...
cordova(aka phonegap) 3.x fundamentals
cordova apis and instruments
apache cordova 3 programming
source code from apache cordova 3 programming
apache cordova api cookbook
source code for apache ...
插件地址:https://github.com/eddyverbruggen/socialsharing-phonegap-plugin
(1)创建工程
引用cordova create hellosocialsharing com.rensanning.cordova hellosocialsharing
cd hellosocialsharing
cordova platform add ...
引用这个插件采用的是开源版的zxing,如果性能、识别率不满足需求的话,建议使用scandit,它提供了community sdk,并且支持platforms(ios/android)、frameworks(titanium/xamarin/phonegap/worklight)。其中community版的支持upc-a / upc-e、ean8 / ean13、qr code。
插件地址:htt ...
插件地址:https://github.com/wf9a5m75/phonegap-googlemaps-plugin/
(1)创建工程
引用cordova create hellomap com.rensanning.cordova hellomap
cd hellomap
cordova platform add android
(2)创建google play services的lib
引 ...
通过web界面上传html/css/javascript源代码后,在云环境(ice)中把这些代码转换成不同平台的app。以下简单试用了一下phonegap build、appbuilder、appery.io、monaca、sae云窗调试器等5个服务。
编译出来的apk文件除过monaca获取的权限太多无法安装、sae云窗调试器只是调试工具,基本都能够很好的实现自动化编译。
appery.io编 ...
hooks本身是一些脚本代码,可以使用任何语言(比如:nodejs、shell等),用来自定义cordova cli命令,位于cordova项目的根目录hooks文件夹下。主要目的是扩展cordova cli框架,在应用的build生命周期中插入自定义的build构建内容。
(1)hooks的种类
①module-level hooks
面向的是扩展cordova平台的,这个是相对比较大的项目的, ...
cordova 编译 android工程的时候,调用的android sdk的默认build过程,所以是基于ant的。
(1)调试用apk
引用cordova build android
默认是debug模式,使用debug.keystore� ...
cordova提供的功能能够满足一般应用,但是对于复杂的应用或者对性能要求比较严格的应用来说,并不是很理想的。所以就需要在某些场景下自己写代码来弥补这些不足,类似titanium module一样,cordova也提供了plugin功能。cordova本身访问native接口都是通过plugin的方式提供的,可以参考官方plugin代码,而且github上也存在不少开源的cordova plugin ...
« 上一页 1
- 专栏创建者:rensanning
- 创建时间:2014-02-26 08:15:19
- 专栏文章数:31篇
- 专栏被浏览:602858 次
本专栏热门文章
最新评论
还是横屏
abcqianzhongshu 评论了
abcqianzhongshu 评论了
经测试可用,但需配置url schema 才可以,使用cordova-plugin-app-launc ...
shuiyunbing 评论了
shuiyunbing 评论了
你好,扫出来中文乱码怎么解决?
jyxzfw 评论了
jyxzfw 评论了
有人吗,为什么我的分享出现不了呢
我叫喵喵哒 评论了
我叫喵喵哒 评论了
...
我叫喵喵哒 评论了
我叫喵喵哒 评论了
rensanning 写道@danny.chiu @lygllylgflh测试了一下,以下代码是好用的 ...
abc__d 评论了
abc__d 评论了
为什么同样的js分享代码在android平台上测试通过,可是在ios平台下,却直接报异常,只有通过邮件 ...
abc__d 评论了
abc__d 评论了
为什么不提供完整的工程呢
chenpenglong 评论了
chenpenglong 评论了
我想知道你们有多少人不用eclipse和android studio开发,只用命令行的
laden88888888 评论了
laden88888888 评论了
请问下,如果我想我的ios应用,在中文环境下,app的名字叫“我的app”;英文环境下叫“my app ...
gavinnie 评论了
gavinnie 评论了