HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

MUI自带的picker组件,在设置默认值是出错的问题

picker

如题,mui自带的picker组件,在使用三级列表的时候,通过以下代码

// 设定省初始值  
                    cityPicker.pickers[0].setSelectedValue("320000");  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedValue("320200");  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedValue("320205");

弹出的来选择其中,默认值始终只能设置好省份的默认值,剩下的二级,三级选择器未能正确设置默认值。
如果采用

cityPicker.pickers[0].setSelectedIndex(9);  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedIndex(1);  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedIndex(5);

则能正常设置三级的默认值。
经过反复测试,我对picker.js的代码进行了修改。主要是修改了triggerChange部分的功能函数,如下

Picker.prototype.triggerChange = function(callback) {  
        var self = this;  
        var index = self.getSelectedIndex();  
        var item = self.items[index];  

        if(index != self.lastIndex) {  
            $.trigger(self.holder, 'change', {  
                "index": index,  
                "item": item  
            });  
        }  
        self.lastIndex = index;  
        typeof callback === 'function' && callback();  
    };

经过测试,终于可以正常使用setSelectedValue来设置三级的默认值。
另外,还添加了一个setSelectedText功能,就是按照setSelectedValue的功能进行改造的。目前没发现什么问题不知道会不会影响到什么地方

继续阅读 »

如题,mui自带的picker组件,在使用三级列表的时候,通过以下代码

// 设定省初始值  
                    cityPicker.pickers[0].setSelectedValue("320000");  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedValue("320200");  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedValue("320205");

弹出的来选择其中,默认值始终只能设置好省份的默认值,剩下的二级,三级选择器未能正确设置默认值。
如果采用

cityPicker.pickers[0].setSelectedIndex(9);  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedIndex(1);  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedIndex(5);

则能正常设置三级的默认值。
经过反复测试,我对picker.js的代码进行了修改。主要是修改了triggerChange部分的功能函数,如下

Picker.prototype.triggerChange = function(callback) {  
        var self = this;  
        var index = self.getSelectedIndex();  
        var item = self.items[index];  

        if(index != self.lastIndex) {  
            $.trigger(self.holder, 'change', {  
                "index": index,  
                "item": item  
            });  
        }  
        self.lastIndex = index;  
        typeof callback === 'function' && callback();  
    };

经过测试,终于可以正常使用setSelectedValue来设置三级的默认值。
另外,还添加了一个setSelectedText功能,就是按照setSelectedValue的功能进行改造的。目前没发现什么问题不知道会不会影响到什么地方

收起阅读 »

h5+免费视频教程更新中(更新至15节应用窗口详解)、mui、app实战教程尽在hcoder.net

mui

视频教程汇总


知识点 : HTML 5 + 开发教程(20170330更新 持续更新中)
实战: MUI、H5+ APP 实战教程 - 仿《有道词典》
知识点 : HBuilder 8.0.1 APP开发 - 新功能全接触
知识点 : APP开发教程 - 启动动画
知识点 : APP开发实例教程 - 窗口切换
知识点 : 移动端图片剪裁、上传视频教程
知识点 : app开发教程-用户注册、登录
实战 : APP开发实战 - 新闻客户端
知识点 : mui 全套教程

交流qq群
1群 335126794(已满), 2群 340610532

免费视频教程地址:
http://www.hcoder.net/course

继续阅读 »

视频教程汇总


知识点 : HTML 5 + 开发教程(20170330更新 持续更新中)
实战: MUI、H5+ APP 实战教程 - 仿《有道词典》
知识点 : HBuilder 8.0.1 APP开发 - 新功能全接触
知识点 : APP开发教程 - 启动动画
知识点 : APP开发实例教程 - 窗口切换
知识点 : 移动端图片剪裁、上传视频教程
知识点 : app开发教程-用户注册、登录
实战 : APP开发实战 - 新闻客户端
知识点 : mui 全套教程

交流qq群
1群 335126794(已满), 2群 340610532

免费视频教程地址:
http://www.hcoder.net/course

收起阅读 »

h5+免费视频教程更新中(更新至15节应用窗口详解)、mui、app实战教程尽在hcoder.net

视频教程 mui

视频教程汇总


知识点 : HTML 5 + 开发教程(20170330更新 持续更新中)
实战: MUI、H5+ APP 实战教程 - 仿《有道词典》
知识点 : HBuilder 8.0.1 APP开发 - 新功能全接触
知识点 : APP开发教程 - 启动动画
知识点 : APP开发实例教程 - 窗口切换
知识点 : 移动端图片剪裁、上传视频教程
知识点 : app开发教程-用户注册、登录
实战 : APP开发实战 - 新闻客户端
知识点 : mui 全套教程

交流qq群
1群 335126794(已满), 2群 340610532

免费视频教程地址:
http://www.hcoder.net/course

继续阅读 »

视频教程汇总


知识点 : HTML 5 + 开发教程(20170330更新 持续更新中)
实战: MUI、H5+ APP 实战教程 - 仿《有道词典》
知识点 : HBuilder 8.0.1 APP开发 - 新功能全接触
知识点 : APP开发教程 - 启动动画
知识点 : APP开发实例教程 - 窗口切换
知识点 : 移动端图片剪裁、上传视频教程
知识点 : app开发教程-用户注册、登录
实战 : APP开发实战 - 新闻客户端
知识点 : mui 全套教程

交流qq群
1群 335126794(已满), 2群 340610532

免费视频教程地址:
http://www.hcoder.net/course

收起阅读 »

使用plus.nativeObj.View编写一个底部导航栏

view nativeObj

众所周知,5+plus提供原生绘画对象(View),通过原生绘画对象可以实现很多控件,以及无限遐想空间。
近期因为需要写一款APP,但是需要预加载的太多了,需要顶部栏还需要底部栏,如果用父子页面的话显然太卡了。
因此标题栏以及底部栏我均使用了plus.nativeObj.View “自绘”了顶部栏和底部栏。


如图所示,这仅仅是最简单的一个样子,就像官方说的,还可以在里面画个球...
附件看图,这儿删繁就简。直接展示使用方法。
首先官方文档:http://www.html5plus.org/doc/zh_cn/nativeobj.html
使用方法:

var _footer = new plus.nativeObj.View('footer');  
var _a = ['img/jingxuan.png','img/app.png','img/ph.png','img/mine.png'];  
var _b = ['img/jingxuan_2.png','img/app_2.png','img/ph_2.png','img/mine_2.png'];  
var _c = ['a','b','c','d'];  
_fbar.setTabInfo(_footer,_a,_b,_c)   
_fbar.setCB(function(tab){  
    console.log('切换选夹>>'+tab);  
});

其中_a 为普通状态图片 _b 为选中状态图片 _c 为选项文本(我一般都是两个字)
关于焦点切换都在js中处理了,开发者只需要在setCB时候传入function,接收即将切换的选夹,并且切换需要显示的webview就行了。
对了,高度为60px,需要如何改进的自行修改js内部。
js纯属抠出来的,源文件包含的太多代码,抠出来的时候可能有点乱。

继续阅读 »

众所周知,5+plus提供原生绘画对象(View),通过原生绘画对象可以实现很多控件,以及无限遐想空间。
近期因为需要写一款APP,但是需要预加载的太多了,需要顶部栏还需要底部栏,如果用父子页面的话显然太卡了。
因此标题栏以及底部栏我均使用了plus.nativeObj.View “自绘”了顶部栏和底部栏。


如图所示,这仅仅是最简单的一个样子,就像官方说的,还可以在里面画个球...
附件看图,这儿删繁就简。直接展示使用方法。
首先官方文档:http://www.html5plus.org/doc/zh_cn/nativeobj.html
使用方法:

var _footer = new plus.nativeObj.View('footer');  
var _a = ['img/jingxuan.png','img/app.png','img/ph.png','img/mine.png'];  
var _b = ['img/jingxuan_2.png','img/app_2.png','img/ph_2.png','img/mine_2.png'];  
var _c = ['a','b','c','d'];  
_fbar.setTabInfo(_footer,_a,_b,_c)   
_fbar.setCB(function(tab){  
    console.log('切换选夹>>'+tab);  
});

其中_a 为普通状态图片 _b 为选中状态图片 _c 为选项文本(我一般都是两个字)
关于焦点切换都在js中处理了,开发者只需要在setCB时候传入function,接收即将切换的选夹,并且切换需要显示的webview就行了。
对了,高度为60px,需要如何改进的自行修改js内部。
js纯属抠出来的,源文件包含的太多代码,抠出来的时候可能有点乱。

收起阅读 »

手机GPS定位

地图插件 地图

HTML5+ 提供了两种获取当前用户GPS位置的方式:

  1. plus.geolocation.getCurrentPosition
  2. Map.getUserLocation

经过测试发现第一种方法获得的位置离散程度比第二种方式高,会出现很多偏离当前真实位置较大的“噪点”,因此推荐使用第二种获取GPS位置的方式。

参考代码如下:

HTML中放一个div容器:  
<div id='allmap' style='display: none;'></div>    

JS中添加代码:  
function queryGeoLocation() {  
    var mapObj = new plus.maps.Map('allmap');  
    var getGPS = mapObj.getUserLocation( function ( state, point ){  
        if( 0 == state ){  

            mapObj.centerAndZoom(point, 15);  
            console.debug(JSON.stringify(point));  
        }else{  

        }  
    } );  

    if(getGPS == false) {  

    }  
}

无论使用哪种方式,都需要首先获取百度地图或者高德地图的APP Key。参考地图插件配置一文即可(http://ask.dcloud.net.cn/article/29),但在新版HBuild中,设置Key的方式已经简化,仅需要在manifest.json的“SDK配置”视图中添加获得的appkey即可,无需修改代码视图。

继续阅读 »

HTML5+ 提供了两种获取当前用户GPS位置的方式:

  1. plus.geolocation.getCurrentPosition
  2. Map.getUserLocation

经过测试发现第一种方法获得的位置离散程度比第二种方式高,会出现很多偏离当前真实位置较大的“噪点”,因此推荐使用第二种获取GPS位置的方式。

参考代码如下:

HTML中放一个div容器:  
<div id='allmap' style='display: none;'></div>    

JS中添加代码:  
function queryGeoLocation() {  
    var mapObj = new plus.maps.Map('allmap');  
    var getGPS = mapObj.getUserLocation( function ( state, point ){  
        if( 0 == state ){  

            mapObj.centerAndZoom(point, 15);  
            console.debug(JSON.stringify(point));  
        }else{  

        }  
    } );  

    if(getGPS == false) {  

    }  
}

无论使用哪种方式,都需要首先获取百度地图或者高德地图的APP Key。参考地图插件配置一文即可(http://ask.dcloud.net.cn/article/29),但在新版HBuild中,设置Key的方式已经简化,仅需要在manifest.json的“SDK配置”视图中添加获得的appkey即可,无需修改代码视图。

收起阅读 »

h5+ App 开发实战教程 - 仿《有道词典》已经发布!更多免费视频教程(mui、h5+、h.js、仿《今日头条》新闻客户端实战)等教程汇总

mui

基于mui、h5+、h.js的App开发实战教程 - 仿《有道词典》 已经发布!


总计10节:
1、入口页面布局子页面布局(含原生侧滑窗口切换
2、主页面布局及代码实现
3、新闻详情页面开发
4、词典页面功能及代码编写
5、热点新闻栏目开发(涵盖:下拉刷新、上拉加载等知识点)
6、完成登录检查及微信登录
7、“我的”页面开发
8、推送及相关统计
9、app 在线升级及安装
10、发布应用到应用宝并进行应用加固及签名

课程总计 4个半小时,包含源码、apk。涉及mui布局修改、服务器交互、微信登录、推送、app升级、加固签名等大部分开发知识!
收费50元,有经济困难的在校学生可以联系客服 1265928288 进行优惠(不是勿扰)。
购买方式
腾讯课堂:
https://ke.qq.com/course/194834#tuin=4f8da6

资料包包含:源码、素材、文字资料,购买后即可下载! 观看时候选择超清模式,代码清晰可见!

交流qq群
1群 335126794(已满), 2群 340610532

hcoder 一直致力于奉献高质量 教程,官网上 mui h5+ 等免费教程播放量已经达到5万,收点费用为了做的更好,希望大家理解。
免费教程地址
http://www.hcoder.net/course

继续阅读 »

基于mui、h5+、h.js的App开发实战教程 - 仿《有道词典》 已经发布!


总计10节:
1、入口页面布局子页面布局(含原生侧滑窗口切换
2、主页面布局及代码实现
3、新闻详情页面开发
4、词典页面功能及代码编写
5、热点新闻栏目开发(涵盖:下拉刷新、上拉加载等知识点)
6、完成登录检查及微信登录
7、“我的”页面开发
8、推送及相关统计
9、app 在线升级及安装
10、发布应用到应用宝并进行应用加固及签名

课程总计 4个半小时,包含源码、apk。涉及mui布局修改、服务器交互、微信登录、推送、app升级、加固签名等大部分开发知识!
收费50元,有经济困难的在校学生可以联系客服 1265928288 进行优惠(不是勿扰)。
购买方式
腾讯课堂:
https://ke.qq.com/course/194834#tuin=4f8da6

资料包包含:源码、素材、文字资料,购买后即可下载! 观看时候选择超清模式,代码清晰可见!

交流qq群
1群 335126794(已满), 2群 340610532

hcoder 一直致力于奉献高质量 教程,官网上 mui h5+ 等免费教程播放量已经达到5万,收点费用为了做的更好,希望大家理解。
免费教程地址
http://www.hcoder.net/course

收起阅读 »

移动app如何在手机关屏后仍能正常运行、接收信息

最近在弄一个安卓APP,需要每隔几秒钟上报一次GPS位置,但发现当手机休眠后(屏幕熄灭后)APP不再运行,因此也不能上报GPS位置。

借助安卓的WakeLock机制,我们可以实现让APP在后台运行。实现代码如下:


var g_wakelock = null;  
//允许程序后台运行,以持续获取GPS位置  
function wakeLock() {  
    //Android  
    var main = plus.android.runtimeMainActivity();  
    var Context = plus.android.importClass("android.content.Context");  
    var PowerManager = plus.android.importClass("android.os.PowerManager");  
    var pm = main.getSystemService(Context.POWER_SERVICE);  
    g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");  
    g_wakelock.acquire();  
}  

//结束程序后台运行  
function releaseWakeLock () {  
    if(g_wakelock != null && g_wakelock.isHeld()) {  
        g_wakelock.release();  
        g_wakelock = null;  
    }  
}  

在需要允许后台运行的时候调用wakeLock(),在希望停止的时候调用releaseWakeLock()

继续阅读 »

最近在弄一个安卓APP,需要每隔几秒钟上报一次GPS位置,但发现当手机休眠后(屏幕熄灭后)APP不再运行,因此也不能上报GPS位置。

借助安卓的WakeLock机制,我们可以实现让APP在后台运行。实现代码如下:


var g_wakelock = null;  
//允许程序后台运行,以持续获取GPS位置  
function wakeLock() {  
    //Android  
    var main = plus.android.runtimeMainActivity();  
    var Context = plus.android.importClass("android.content.Context");  
    var PowerManager = plus.android.importClass("android.os.PowerManager");  
    var pm = main.getSystemService(Context.POWER_SERVICE);  
    g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");  
    g_wakelock.acquire();  
}  

//结束程序后台运行  
function releaseWakeLock () {  
    if(g_wakelock != null && g_wakelock.isHeld()) {  
        g_wakelock.release();  
        g_wakelock = null;  
    }  
}  

在需要允许后台运行的时候调用wakeLock(),在希望停止的时候调用releaseWakeLock()

收起阅读 »

每天1.36元, 系统学习APP开发

每天1.36元, 系统学习APP开发
按照学习路线图系统学习, 从0到1开发自己的APP...

东翌学院现推出视频订阅学习,【SVIP订阅499/年】可学习所有视频课程(包含实战课程) ,网站视频包含:MUI整套学习课程,包含(HTML+CSS+JS+PHP+Mysql+HBuilder+MUI+H5++Castapp+实战项目);ReactNative整套学习课程,包含(ECMAScript6+ReactJs+ReactNative+PHP+Mysql+实战项目)!有需要学习同学请联系Q:2547209832 群:326787019 报名请通过此链接:http://www.dongyixueyuan.com/expand/epo2wx 通过此链接报名成功后联系老师Q:2547209832领取福利哦!详情咨询QQ:2547209832

继续阅读 »

每天1.36元, 系统学习APP开发
按照学习路线图系统学习, 从0到1开发自己的APP...

东翌学院现推出视频订阅学习,【SVIP订阅499/年】可学习所有视频课程(包含实战课程) ,网站视频包含:MUI整套学习课程,包含(HTML+CSS+JS+PHP+Mysql+HBuilder+MUI+H5++Castapp+实战项目);ReactNative整套学习课程,包含(ECMAScript6+ReactJs+ReactNative+PHP+Mysql+实战项目)!有需要学习同学请联系Q:2547209832 群:326787019 报名请通过此链接:http://www.dongyixueyuan.com/expand/epo2wx 通过此链接报名成功后联系老师Q:2547209832领取福利哦!详情咨询QQ:2547209832

收起阅读 »

选项卡切换下拉刷新,上拉加载,回到顶部,跳到底部的实现方法。

区域滚动 scroll


今天遇到一个问题,在使用官方提供的选项卡切换,附带上拉加载下拉刷新的时候遇到问题。
首先,我需要增加一个返回顶部功能,即切换选项同时返回顶部。
其次,我需要在底部加载完毕的时候,对应选项跳转到底部。

首先先了解下,当采用如图的方式构建的时候,需要了解以下几点:
1。滚动条是在div内部,即.scroll 包含区域的
这意味着window.scroll dom.scrollTop 均无效。
2.其中每一个子div都包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()方法返回的将是一个数组。
3.选项头包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()[0]指向选项头的scroll区域。

了解完以下几点就简单多了。下拉刷新上拉加载的js和方法官方Hello MUI例程里面有,我就不多说了。
直接po代码。
回到顶部:

> mui('.btn_top')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollTo(0,0,100)
> console.log('第'+nT+'选项请求返回顶部')
> })

其中nT代表当前slider对应选项卡。
其中的nT+1目的就是避开选项头的那一个scroll区域。
回到底部:

> mui('.btn_bottomtop')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollToBottom(100);
> console.log('第'+nT+'选项请求返回顶部')
> })

频繁出现的100指代的是100毫秒。
具体参考官方文档:http://dev.dcloud.net.cn/mui/ui/#scroll

继续阅读 »


今天遇到一个问题,在使用官方提供的选项卡切换,附带上拉加载下拉刷新的时候遇到问题。
首先,我需要增加一个返回顶部功能,即切换选项同时返回顶部。
其次,我需要在底部加载完毕的时候,对应选项跳转到底部。

首先先了解下,当采用如图的方式构建的时候,需要了解以下几点:
1。滚动条是在div内部,即.scroll 包含区域的
这意味着window.scroll dom.scrollTop 均无效。
2.其中每一个子div都包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()方法返回的将是一个数组。
3.选项头包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()[0]指向选项头的scroll区域。

了解完以下几点就简单多了。下拉刷新上拉加载的js和方法官方Hello MUI例程里面有,我就不多说了。
直接po代码。
回到顶部:

> mui('.btn_top')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollTo(0,0,100)
> console.log('第'+nT+'选项请求返回顶部')
> })

其中nT代表当前slider对应选项卡。
其中的nT+1目的就是避开选项头的那一个scroll区域。
回到底部:

> mui('.btn_bottomtop')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollToBottom(100);
> console.log('第'+nT+'选项请求返回顶部')
> })

频繁出现的100指代的是100毫秒。
具体参考官方文档:http://dev.dcloud.net.cn/mui/ui/#scroll

收起阅读 »

h5+ App 开发实战教程 - 仿《有道词典》已经发布!更多免费视频教程(mui、h5+、h.js、app实战)等教程汇总

mui

基于mui、h5+、h.js的App开发实战教程 - 仿《有道词典》 已经发布!


总计10节:
1、入口页面布局子页面布局(含原生侧滑窗口切换
2、主页面布局及代码实现
3、新闻详情页面开发
4、词典页面功能及代码编写
5、热点新闻栏目开发(涵盖:下拉刷新、上拉加载等知识点)
6、完成登录检查及微信登录
7、“我的”页面开发
8、推送及相关统计
9、app 在线升级及安装
10、发布应用到应用宝并进行应用加固及签名

课程总计 4个半小时,包含源码、apk。涉及mui布局修改、服务器交互、微信登录、推送、app升级、加固签名等大部分开发知识!
收费50元,有经济困难的在校学生可以联系客服 1265928288 进行优惠(不是勿扰)。
购买方式
腾讯课堂:
https://ke.qq.com/course/194834#tuin=4f8da6

资料包包含:源码、素材、文字资料,购买后即可下载! 观看时候选择超清模式,代码清晰可见!

hcoder 一直致力于奉献高质量 教程,官网上 mui h5+ 等免费教程播放量已经达到5万,收点费用为了做的更好,希望大家理解。
免费教程地址
http://www.hcoder.net/course

继续阅读 »

基于mui、h5+、h.js的App开发实战教程 - 仿《有道词典》 已经发布!


总计10节:
1、入口页面布局子页面布局(含原生侧滑窗口切换
2、主页面布局及代码实现
3、新闻详情页面开发
4、词典页面功能及代码编写
5、热点新闻栏目开发(涵盖:下拉刷新、上拉加载等知识点)
6、完成登录检查及微信登录
7、“我的”页面开发
8、推送及相关统计
9、app 在线升级及安装
10、发布应用到应用宝并进行应用加固及签名

课程总计 4个半小时,包含源码、apk。涉及mui布局修改、服务器交互、微信登录、推送、app升级、加固签名等大部分开发知识!
收费50元,有经济困难的在校学生可以联系客服 1265928288 进行优惠(不是勿扰)。
购买方式
腾讯课堂:
https://ke.qq.com/course/194834#tuin=4f8da6

资料包包含:源码、素材、文字资料,购买后即可下载! 观看时候选择超清模式,代码清晰可见!

hcoder 一直致力于奉献高质量 教程,官网上 mui h5+ 等免费教程播放量已经达到5万,收点费用为了做的更好,希望大家理解。
免费教程地址
http://www.hcoder.net/course

收起阅读 »

app中判断自动升级的一个主要逻辑

1.在服务器需要一个json或html文件,json最好。
{
"state": "yes",//是否自动更新
"mark": "1.0.6",//版本号
"url": "http:\/\/XXXXXXXX\/APPobject\/mmm.wgt"//更新的应用下载地址
}
2.自动更新函数
t是你当前正在运行的APP的版本号

//检查自动更新
function svn(t) {
var xhr_svn = new plus.net.XMLHttpRequest();
xhr_svn.onreadystatechange = function() {
if (xhr_svn.readyState == 4) {
if (xhr_svn.status == 200) {
var res = JSON.parse(xhr_svn.responseText);
if (res.state == 'yes') {
if (res.mark != t) {
var upr;
plus.nativeUI.confirm( "有新版本发布了,是否件更新?", function(e){
upr=(e.index==0)?"Y":"N";
// console.log(upr);
if(upr=="Y"){
var wt = plus.nativeUI.showWaiting('下载更新中,请勿关闭');
var url = res.url; // 下载文件地址
var dtask = plus.downloader.createDownload(url, {}, function(d, status) {
if (status == 200) { // 下载成功
var path = d.filename;
console.log(d.filename);
plus.runtime.install(path);
} else { //下载失败
alert("Download failed: " + status);
}
});
dtask.start();
}else{

                        }     
                    }, "XXX系统", ["确认","取消"] );     

                } else {     
                    console.log('最新');     
                }     
            }     
        } else {     
            plus.nativeUI.toast( "网络连接错误!");     
        }     
    }     
}     
xhr_svn.open("GET", "http:/XXX/APPobject/imes/update.json");//这里的地址是上面json文件的地址     
xhr_svn.send();     

}
3.调用方法:在每次系统打开运行的时候执行上面的函数就可以

继续阅读 »

1.在服务器需要一个json或html文件,json最好。
{
"state": "yes",//是否自动更新
"mark": "1.0.6",//版本号
"url": "http:\/\/XXXXXXXX\/APPobject\/mmm.wgt"//更新的应用下载地址
}
2.自动更新函数
t是你当前正在运行的APP的版本号

//检查自动更新
function svn(t) {
var xhr_svn = new plus.net.XMLHttpRequest();
xhr_svn.onreadystatechange = function() {
if (xhr_svn.readyState == 4) {
if (xhr_svn.status == 200) {
var res = JSON.parse(xhr_svn.responseText);
if (res.state == 'yes') {
if (res.mark != t) {
var upr;
plus.nativeUI.confirm( "有新版本发布了,是否件更新?", function(e){
upr=(e.index==0)?"Y":"N";
// console.log(upr);
if(upr=="Y"){
var wt = plus.nativeUI.showWaiting('下载更新中,请勿关闭');
var url = res.url; // 下载文件地址
var dtask = plus.downloader.createDownload(url, {}, function(d, status) {
if (status == 200) { // 下载成功
var path = d.filename;
console.log(d.filename);
plus.runtime.install(path);
} else { //下载失败
alert("Download failed: " + status);
}
});
dtask.start();
}else{

                        }     
                    }, "XXX系统", ["确认","取消"] );     

                } else {     
                    console.log('最新');     
                }     
            }     
        } else {     
            plus.nativeUI.toast( "网络连接错误!");     
        }     
    }     
}     
xhr_svn.open("GET", "http:/XXX/APPobject/imes/update.json");//这里的地址是上面json文件的地址     
xhr_svn.send();     

}
3.调用方法:在每次系统打开运行的时候执行上面的函数就可以

收起阅读 »

字符串和json数据的相互转换

json

JSON.parse()--字符串转换json、
JSON.stringify()--json转换成字符串

JSON.parse()--字符串转换json、
JSON.stringify()--json转换成字符串