单纯用cordova app 检查更新实现app更新可以么

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我用了cordova开发了一款app,现在想增加用户充值功能,希望支持微信和支付宝支付。
请问微信或者支付宝是否有纯web的支付接口?或者是否有其它更好的解决方案呢?
来源: 微信开放平台问答
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这有一个开源的插件,你可以试试看
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我之前自己开发的全过程:此插件可用于安卓与ios
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 AppCordova让JavaScript访问原生移动应用的设备功能
您所在的位置:
点击次数:&&更新时间: 17:38:55&&【】&&【】
Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。
Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。
Cordova支持如下移动操作系统:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。
Cordova是贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎。你可以把它们的关系想象成类似于Webkit和Google Chrome的关系
Adobe将会继续以Cordova加上PhoneGap Build和Adobe Shadow的组合提供PhoneGap。 早在2011年10月,Adobe收购了Nitobi Software和它的PhoneGap产品,然后宣布这个移动开发框架将会继续开源,并把它提交到Apache Incubator,以便完全接受ASF的管治。我们想知道为什么Adobe会收购Nitobi并开源PhoneGap,尤其是为什么PhoneGap还会继续,如果另一个项目应该完成它的工作?
最近Adobe出现了一系列的沟通问题,包括处理Flash、Flex、AIR和PhoneGap的过渡问题。几个月之后,Adobe终于搞清楚他们对Flash和Flex的规划了,现在发帖澄清围绕着PhoneGap的一些谜团。
PhoneGap的项目主管Brian LeRoux指出开源PhoneGap的决定在Adobe收购Nitobi之前就做出了,由于Adobe现在拥有PhoneGap商标,他们不得不换个名 字。第一个选中的名字是Callback,毫无创意,因此再改一次,产品现在叫Apache Cordova。
虽然很多人认为PhoneGap这个名字不会再用,因为代码已在一个不同 的名字下面,但现实的情况是,Adobe想继续在PhoneGap品牌下提供Cordova。在不久的将来,Adobe会把Cordova、 PhoneGap Build(一个在线应用程序构建服务)和Adobe Shadow(一个检查和预览工具)打包起来,将来很可能还会向PhoneGap包添加更多移动开发工具。
目前还不清楚Adobe是否会巩固PhoneGap品牌,虽然开发者对它 已经耳熟能详,或者是否换成另一个名字。此外,也不清楚他们是否会在Cordova代码之上构建私有代码,但LeRoux的帖子留下了线索:&目前 (PhoneGap和Apache Cordova之间的)唯一区别是下载的包的名字,这会持续一段时间(加重语气)。&
标签:&nbsp&nbsp&nbsp&nbsp
上一篇:&&下一篇:Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?
我的图书馆
Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?
在 《》中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个Andorid下的cordova插件。
本次练习你能学到的
学习如何实现自动更新功能学习插件类的编写学习插件的配置学习插件的调用
打开APP后检查版本更新,如果有更新则弹出更新对话框
APP中【检查更新】显示当前版本号,并可以点击进行版本检查更新
如何实现自动更新功能
你可以自己写代码,也可以网上找代码抄一下,我之前的&&就是从网上下的一个代码片段放进我的项目中的。不过今天和大家说的不是如何编写自动更新代码,因为我们今天要做的是如何更快的用别人写好的东西来加速自己产品开发的进度和质量。
自动更新这个东西也不涉及到什么技术难度,一般第三方要是提供了也不会出什么质量问题,能够拿来就用岂不是很好呢?网上找了一下,发现&
很好,那就直接用这个吧,Andorid和iOS都可以用。
如何集成到我们的产品中,看他们自己写的文档:&,我就不多说了,如果遇到问题,可以在咱们群里问问大家。
插件类的编写
原生Andorid中如果调用,就看上面说的他们自己写的文档。如果我们现在要在APP中【设置】中增加自动检查和显示当前版本,则需要我们开始学习如何编写cordova插件了。
这里我们会编写一个插件,两个方法,一个方法用来检测更新,另一个方法用来获得当前APP的版本号。
闲话不说了,直接来代码。
public class GCAppPlugin extends CordovaPlugin {
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("version".equals(action)) {
version(callbackContext);
return true;
else if ("checkUpdate".equals(action)) {
final Context mContext = this.cordova.getActivity();
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
switch (updateStatus) {
case UpdateStatus.Yes: // has update
UmengUpdateAgent.showUpdateDialog(mContext, updateInfo);
case UpdateStatus.No: // has no update
Toast.makeText(mContext, "现在使用的已是最新版本了", Toast.LENGTH_SHORT).show();
case UpdateStatus.NoneWifi: // none wifi
Toast.makeText(mContext, "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show();
case UpdateStatus.Timeout: // time out
Toast.makeText(mContext, "超时", Toast.LENGTH_SHORT).show();
UmengUpdateAgent.forceUpdate(mContext);
return true;
private synchronized void version(CallbackContext callbackContext) {
  PackageInfo packI
    packInfo = this.cordova.getActivity().getPackageManager().getPackageInfo(this.cordova.getActivity().getPackageName(),0);
    String version = packInfo.versionName +"("+packInfo.versionCode+")";
    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, version));
  } catch (NameNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
Javascript如何得到插件调用后的返回结果?主要通过类似&callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, version)); 代码返回PluginResult,失败和成功都可以触发Javascript执行对应的自定义函数
插件的配置
插件写完了,很多人遇到的下一个问题就是怎么配置才能在Javascript中调用呢?我们今天也不解析源码,为什么呢?因为我没看:)不过,我一定要给大家说清楚如何配置,否则就永远调用不了插件。
打开res/xml/config.xml文件,添加feature,必须匹配类名,因为源码中是通过这些去配对的。上面我们写了更新插件,现在就是要配置一下这个插件类到功能名称,我在配置文件中加入了下文粗体部分内容
&?xml version='1.0' encoding='utf-8'?&
&widget id="com.glodon.gcapp" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"&
&name&掌中广材&/name&
&description& 随时随地查找全国最完整最及时的信息价
&/description&
&author email="" href="http://www.中国信息价.cn"&
&content src="html/scj/scj.html" /&
&access origin="*" /&
&access origin="tel:*" launch-external="yes"/&
&access origin="geo:*" launch-external="yes"/&
&access origin="mailto:*" launch-external="yes"/&
&access origin="sms:*" launch-external="yes"/&
&access origin="market:*" launch-external="yes"/&
&preference name="SplashScreen" value="screen" /&
&preference name="SplashScreenDelay" value="30000" /&
&preference name="SplashMaintainAspectRatio" value="false" /&
&preference name="LoadingDialog" value="正在加载中..." /&
&feature name="Device"&
&param name="android-package" value="org.apache.cordova.device.Device" /&
&/feature&
&feature name="NetworkStatus"&
&param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" /&
&/feature&
&feature name="SplashScreen"&
&param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" /&
&/feature&
&feature name="Camera"&
&param name="android-package" value="org.apache.cordova.camera.CameraLauncher" /&
&/feature&
&feature name="BarcodeScanner"&
&param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" /&
&/feature&
&feature name="Gcapp"&
&param name="android-package" value="com.gldjc.guangcaiclient.GCAppPlugin" /&
&/feature&
代码贴完了,我还是要再多说一下,
com.gldjc.guangcaiclient.GCAppPlugin
是插件类的全面
Gcapp是 feature 名称,下面大家就知道在哪里会用到了
以上文件就是告诉cordova,我们新增了一个Gcapp功能,这个功能会调用我们的原生插件Java对象,接下来就是Javascript如何能调用到这个类了,最重要的就是这个Gcapp功能名称。
我们接着就要写Javascript代码来调用这个功能了,如何写呢?继续往下看,我在assets/www/plugins/下新增目录并建立了文件gcapp.js,完整路径是&assets/www/plugins/com.gldjc.guangcaiclient/www/gcapp.js,代码如下:
cordova.define('com.gldjc.guangcaiclient.gcapp', function(require, exports, module) {
var exec = require("cordova/exec");
function Gcapp() {};
Gcapp.prototype.version = function (getversion) {
exec(getversion, null, 'Gcapp', 'version', []);
   Gcapp.prototype.checkUpdate = function () {
exec(null, null, 'Gcapp', 'checkUpdate', []);
var gcapp = new Gcapp();
module.exports =
exec是cordova.js中内部的函数,当插件返回&PluginResult.Status.OK 时会执行exec的成功回调函数,如果插件返回的是错误,则会执行exec的错误回调函数。这里我们解释一下&
exec(null, null, 'Gcapp', 'checkUpdate', []);
其中Gcapp就是我们在上一步骤加的feature名称,大小写匹配着写,通过这个名称,cordova才能找到调用那个java插件类,然后通过checkUpdate知道调用这个插件类的哪个方法,后面[]中则是参数。因为我这个插件不需要参数,所以为空。
Javascript插件类也配对成功了,那如何调用呢?你可以直接在html中包括这个js,不过我们一般会再配置一个js,那就是assets/www/cordova_plugins.js,这样就不用对每个插件类都去写一遍了,cordova会遍历你的配置去加载它们。
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
"file": "plugins/org.apache.cordova.device/www/device.js",
"id": "org.apache.cordova.device.device",
"clobbers": [
"file": "plugins/org.apache.cordova.networkinformation/www/network.js",
"id": "org.apache.cordova.networkinformation.network",
"clobbers": [
"navigator.connection",
"navigator.network.connection"
"file": "plugins/org.apache.cordova.networkinformation/www/Connection.js",
"id": "org.apache.cordova.networkinformation.Connection",
"clobbers": [
"Connection"
"file": "plugins/org.apache.cordova.splashscreen/www/splashscreen.js",
"id": "org.apache.cordova.splashscreen",
"clobbers": [
"navigator.splashscreen"
"file" : "plugins/org.apache.cordova.camera/www/CameraConstants.js",
"id" : "org.apache.cordova.camera.Camera",
"clobbers" : [ "Camera" ]
"file" : "plugins/org.apache.cordova.camera/www/CameraPopoverOptions.js",
"id" : "org.apache.cordova.camera.CameraPopoverOptions",
"clobbers" : [ "CameraPopoverOptions" ]
"file" : "plugins/org.apache.cordova.camera/www/Camera.js",
"id" : "org.apache.cordova.camera.camera",
"clobbers" : [ "navigator.camera" ]
"file" : "plugins/org.apache.cordova.camera/www/CameraPopoverHandle.js",
"id" : "org.apache.cordova.camera.CameraPopoverHandle",
"clobbers" : [ "CameraPopoverHandle" ]
"file" : "plugins/com.phonegap.plugins.barcodescanner/www/barcodescanner.js",
"id" : "com.phonegap.plugins.barcodescanner.barcodescanner",
"clobbers" : [ "barcodescanner" ]
"file": "plugins/com.gldjc.guangcaiclient/www/gcapp.js",
"id": "com.gldjc.guangcaiclient.gcapp",
"clobbers": [
module.exports.metadata =
// TOP OF METADATA
"org.apache.cordova.device": "0.2.13"
// BOTTOM OF METADATA
file表示我们去哪里找脚本插件定义js,id是之前我们在gcapp.js中开头cordova.define中写的标识,cordova通过这个标志去找到我们的Javascript插件定义,而clobbers则是我们在前端通过什么对象名来调用这个插件。这里我写的是gcapp,则后面调用则只需要写成gcapp.checkUpdate 即可
插件的调用
万事俱备,只欠东风,你们可以开始看到结果了,如果从头到这里一步成功,那应该还是蛮兴奋的事情吧。
具体前端页面如何设计我就不说了,我的页面效果就如本文最前面的图片,在js中我是这些调用version的,至于checkUpdate就是一样了,在按钮的click事件中调用&gcapp.checkUpdate(); 即可
$(document).on("PG_pageinit", function(event) {
gcapp.version(function(version){
$("#version").html(version);
如果你对以上内容感兴趣,那就继续关注吧,依旧如此,喜欢这个系列的就点赞,点的越多,更新就会越快,超过20个赞或20个回复后,开始写下一篇,欢迎你写下你想要我写的内容
PhoneGap App开发
绿色通道:
(请您对文章做出评价)
阅读(476) 评论(5)
正需要这方面的案例
友盟自动更新确实好用,我已经弄好了,希望楼主讲讲身份验证怎嘛弄,这涉及到安全问题,每个APP都要考虑的啊
这家伙怎么打包成苹果app,能讲一下这方面的内容吗?
mark~~~可以和你一起交流吗 群:
馆藏&22907
TA的最新馆藏
喜欢该文的人也喜欢phonegap吧-百度贴吧--web程序猿也可以开发app啦--PhoneGap将复杂的C/S开发转换成简单的B/S开发,大大降低了开发应用的门槛,PhoneGap和Cordova其实是一个东西,只是名
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:9
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
web程序猿也可以开发app啦
下面一行一直在转
小弟急求,十万火急,希望哥哥姐姐能给小弟一个建议
为什么我写的function会用不到,是写错了还是其他问题 function a(){ var stuid=$(&#stuid&).var(); var password=$(
走了好多弯路。。。想来个会的大神指点一下
使用phonegap封装app,使用了动态加载js的getscript函数。但是phonegap找的路径是错的。是相对于系统根目录的
等着你来提问哦!
有人知道iPhone的phonegap developer app每次连接web服务器的站点的时候,都提示URL无效
老师提供了一个phonegap包,请问如何才能用AS或者eclipse导入那个项目?
如题,我根据提示上3个手指一起点刷新不了,4个手指也一样。。有谁可以告知下吗?不然每次更新完代码
跨平台开发技术-PhoneGap从入门到精通(PhoneGap、罗盘、运动传感器、地理位置) 课程讲师:厉风行 课程分类:手机开发 适合人群:中级 课时数量:76课
怎么办啊 倒腾了一天 了
adobe的网站下起来实在太慢
改善程序启动和响应的时间 为了加快APP响应速度,我们可以在UI线程上创建足够的对象,以便完善公共API
我们知道在一些软件内拍照完会出现编辑界面,你可以选择保留这张或者不满意需要重拍。 我的情况是:
ios6和7怎么办
我想实现类似QQ语音通话的自动唤醒,就是如果有数据传来就和电话一样程序自动从后台弹出然后响铃,这
高性能CordovaAPP开发这本书在哪里能买到?求助帖,当当网和亚马逊都搜不到呢
求教,目前开发APP使用了百度推送SDK,而当我启用的时候, document.addEventListener(&backbutton&,function (){
百度ssp有个phonegap插件,有人会用吗?大神何在?求交。
一个点击事件在deviceready里,点击提示函数名is not undefined,放到外边就可以
这种算不算项目建成功了
是这样的,本人在开发一个程序,需要在来电的时候暂停程序的部分功能,但程序依旧可以在后台运行,
将HTML5程序在线打包成iOS版时,对压缩包有啥要求啊!大神们,求教啊!!!!拜托了
有人知道cordoca怎么和数据库链接,我想做个用户注册登录验证的页面
现在6.0以上的用 info.mac 获取的都是 ,获取不到正确的mac地址
而我自己加到www目录的html文件打包成apk之后运行错误?
就是水一下嘛?
公司给了一个html5的链接,怎么将它封装成iOS的,第一次打包,不懂啊!!!求大神支援
有没有人现在用phonegap开发手机App的大神???
这里是phonegap吧系列教程第一讲,鉴于很多吧友一直处于环境搭建的大坑中,始终无法入门,所以先把环境搭建讲一讲。欢迎各位吧友提出问题,有空的时候
如标题 window.navigator.app.exitApp()不能退出应用程序!
我说说我的情况。一年前端开发经验,上个月转投phonegap怀抱。现在工资不拖郭嘉后腿,虽然感觉phonegap非常不错,但是总觉得被某些东西卡住了
大神们有没有关于phoneGap的好书推荐的???
这个吧也太少认了吧?一个星期没有更新一篇?
在windows系统利用phonegap开发iphone ios的app,怎么搭建环境啊?需不需要装虚拟机装os系统?有没有链接教程什么的?谢谢啦
Mac环境已经搭建好 求大神指导或求点资料,人在多伦多买书不易呀 拜师学艺
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
发表后自动分享本贴
使用签名档&}

我要回帖

更多关于 cordova app版本更新 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信