
状态栏大全-状态栏透明(沉浸式)、变色及全屏的区别
手机的顶部状态栏,也就是信号、电量那条,有4种状态,分别是正常、变色、透明(也称沉浸式状态栏)、消失(也就是全屏)。
后3种特殊用法,具体见下:
状态栏变色
常见使用场景:如果title背景为纯色且显眼,一般会把状态栏的背景色也变成title的颜色,看起来大气,比如流应用中的网易新闻。

写法:
使用5+API plus.navigator.setStatusBarBackground)。
首页配置
首页需要在manifest.json文件中,plus->launchwebview下添加statusbar节点,并配置background的值(格式为#RRGGBB)。
若首页为secondwebview,则调整launchwebview为secondwebview即可。
终端支持:
- Android5及以上系统支持;
- iOS7.0及以上系统支持。
前景色处理:
当背景色调整后,如果调整不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面:
- Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持
高度处理:此时webview高度没有全屏,webview高度+状态栏高度=手机屏幕高度。
也就是转场动画时,webview动画是不会通顶的,状态栏不会在转场时变化。
状态栏透明(沉浸式)
常见使用场景:如果页面顶部是图片,一般会把状态栏变成透明,此时同时会处理成滚动后恢复为纯色title,比如流应用中的36kr:
或者看视频https://v.qq.com/x/page/h0386sphgpt.html
写法:
Android平台设置沉浸式状态栏显示效果
iOS平台设置沉浸式状态栏显示效果
终端支持:
- Android4.4及以上系统支持;
- iOS7.0及以上系统支持。
前景色处理:
与背景色调整相同,如果背景图颜色不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面: - Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持
高度处理:
注意,此时webview高度为全屏,状态栏高度为0,也就是webview高度=屏幕高度。
状态栏背景透明后前景图标覆盖在webview顶部。
尤其注意此时dom里涉及fix定位计算的元素,可能需要重新排高度。
在状态栏透明的情况下,转场动画时,webview动画是会通顶的,状态栏那里也会有条线左右移动。
其他注意:
沉浸式状态栏不支持动态调整,属于应用级,真机运行不生效,需要提交到云端打包后有效。
一个app设置了沉浸式,就意味着里面的每个webview都变成沉浸式。
这可能会造成很多页面都需要调整高度,此时有一种方案,就是在webview创建时,允许通过一个参数设置把这个webview的状态条再模拟显示出来,plus.webview.create('http://m.weibo.cn/u/3196963860', 'test', {statusbar:{background:"#D4D4D4"}})。这样设置后,webview的高度重新回到状态栏下方,不再顶到屏幕顶部。
此api从HBuilder8.1 alpha版起生效。
示例:
在hello mui里的nav bar示例中,提供了原生的渐变头和HTML的渐变头2种示例,大家可以参考。
全屏显示 (没有状态栏)
常见使用场景:如果页面是全屏游戏,一般会直接让状态栏消失,也就是页面全屏。webview高度全屏了,状态栏没有了。
写法:
设置应用全屏显示
终端支持:
没有终端类型限制
高度处理:与状态栏透明相同,webview高度=屏幕高度,状态栏高度为0且不显示前景内容。需要注意dom里fix元素的调整。
手机的顶部状态栏,也就是信号、电量那条,有4种状态,分别是正常、变色、透明(也称沉浸式状态栏)、消失(也就是全屏)。
后3种特殊用法,具体见下:
状态栏变色
常见使用场景:如果title背景为纯色且显眼,一般会把状态栏的背景色也变成title的颜色,看起来大气,比如流应用中的网易新闻。
写法:
使用5+API plus.navigator.setStatusBarBackground)。
首页配置
首页需要在manifest.json文件中,plus->launchwebview下添加statusbar节点,并配置background的值(格式为#RRGGBB)。
若首页为secondwebview,则调整launchwebview为secondwebview即可。
终端支持:
- Android5及以上系统支持;
- iOS7.0及以上系统支持。
前景色处理:
当背景色调整后,如果调整不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面:
- Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持
高度处理:此时webview高度没有全屏,webview高度+状态栏高度=手机屏幕高度。
也就是转场动画时,webview动画是不会通顶的,状态栏不会在转场时变化。
状态栏透明(沉浸式)
常见使用场景:如果页面顶部是图片,一般会把状态栏变成透明,此时同时会处理成滚动后恢复为纯色title,比如流应用中的36kr:
或者看视频https://v.qq.com/x/page/h0386sphgpt.html
写法:
Android平台设置沉浸式状态栏显示效果
iOS平台设置沉浸式状态栏显示效果
终端支持:
- Android4.4及以上系统支持;
- iOS7.0及以上系统支持。
前景色处理:
与背景色调整相同,如果背景图颜色不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面: - Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持
高度处理:
注意,此时webview高度为全屏,状态栏高度为0,也就是webview高度=屏幕高度。
状态栏背景透明后前景图标覆盖在webview顶部。
尤其注意此时dom里涉及fix定位计算的元素,可能需要重新排高度。
在状态栏透明的情况下,转场动画时,webview动画是会通顶的,状态栏那里也会有条线左右移动。
其他注意:
沉浸式状态栏不支持动态调整,属于应用级,真机运行不生效,需要提交到云端打包后有效。
一个app设置了沉浸式,就意味着里面的每个webview都变成沉浸式。
这可能会造成很多页面都需要调整高度,此时有一种方案,就是在webview创建时,允许通过一个参数设置把这个webview的状态条再模拟显示出来,plus.webview.create('http://m.weibo.cn/u/3196963860', 'test', {statusbar:{background:"#D4D4D4"}})。这样设置后,webview的高度重新回到状态栏下方,不再顶到屏幕顶部。
此api从HBuilder8.1 alpha版起生效。
示例:
在hello mui里的nav bar示例中,提供了原生的渐变头和HTML的渐变头2种示例,大家可以参考。
全屏显示 (没有状态栏)
常见使用场景:如果页面是全屏游戏,一般会直接让状态栏消失,也就是页面全屏。webview高度全屏了,状态栏没有了。
写法:
设置应用全屏显示
终端支持:
没有终端类型限制
高度处理:与状态栏透明相同,webview高度=屏幕高度,状态栏高度为0且不显示前景内容。需要注意dom里fix元素的调整。

关于appid太坑了
能不能限制一下hb的appid,
或换个名字,以为是应用的appid,原来是hb自己ID.
如果写成xxx.app那个坑爹了.
但用户习惯都是写
com.xxx.app
能不能限制一下hb的appid,
或换个名字,以为是应用的appid,原来是hb自己ID.
如果写成xxx.app那个坑爹了.
但用户习惯都是写
com.xxx.app

mui.get mui.post
MUI起步阶段在没有足够了解MUI-AJAX的情况下使用了mui.ajax简化方法;
项目收尾却要详细的处理各种错误,又想保持自己源代码不改变;
怎么办?
打开mui.min.js--->找到mui.ajax部分,如果你是通过HB直接建立的项目,你可以搜索:a.get=function(POST一样)就可以找到这个部分;
修改示例:a.get=function(){
var b=r.apply(null,arguments);
b.timeout=8000;//超时 单位:ms
b.error=function(){ //错误处理
if(!plus.webview.getWebviewById('ajaxError.html')){
plus.webview.create('views/ajaxError.html', 'ajaxError.html',null, null);
setTimeout(Function("plus.webview.show('ajaxError.html','slide-in-right',300,null, null);"),500);
}else{
plus.webview.show('ajaxError.html', 'slide-in-right', 500, null, null);
}plus.nativeUI.closeWaiting();
mui.toast('XMLHttpRequest:'+arguments[0].readyState+','+arguments[1]);
};return a.ajax(b)}
至此你就可以在不修改自己源码的基础上满足此需求!
MUI起步阶段在没有足够了解MUI-AJAX的情况下使用了mui.ajax简化方法;
项目收尾却要详细的处理各种错误,又想保持自己源代码不改变;
怎么办?
打开mui.min.js--->找到mui.ajax部分,如果你是通过HB直接建立的项目,你可以搜索:a.get=function(POST一样)就可以找到这个部分;
修改示例:a.get=function(){
var b=r.apply(null,arguments);
b.timeout=8000;//超时 单位:ms
b.error=function(){ //错误处理
if(!plus.webview.getWebviewById('ajaxError.html')){
plus.webview.create('views/ajaxError.html', 'ajaxError.html',null, null);
setTimeout(Function("plus.webview.show('ajaxError.html','slide-in-right',300,null, null);"),500);
}else{
plus.webview.show('ajaxError.html', 'slide-in-right', 500, null, null);
}plus.nativeUI.closeWaiting();
mui.toast('XMLHttpRequest:'+arguments[0].readyState+','+arguments[1]);
};return a.ajax(b)}
至此你就可以在不修改自己源码的基础上满足此需求!
收起阅读 »
感谢80万开发者厚爱,HBuilder8.0正式发布 【内含重要性能优化新策略】
从2014年正式发布,3岁多的HBuilder正式发布了8.0,巧的是HBuilder的开发者数量也正好达到了80万。
中国HTML5开发者一共有多少我们不知道,但HBuilder确认是中国的主流HTML5开发工具无疑了。
在此之前,中国人制作开发工具从未成功过,有尝试者,都败在海外产品下。
如今我们终于可以自豪的说,HBuilder,可以和任何海外顶尖开发工具平起平坐!
成为主流开发工具,是一种荣誉,更是一种责任。
中国的HTML5发展,DCloud可以、也应当做更多事。
在过去的2016年,HTML5行业发生了重大的变化。不是喊HTML5元年来了,这次不是狼来了,是狼真的来了。
在微信小程序和流应用的影响下,人们终于认识到,HTML5经过强化后,是完全可达到商用标准的。
微信小程序虽然是私有语法,但wxml在手机端运行时也会翻译成html,其对HTML5的各种增强优化措施比如:多webview,采用webview动画来替代低效的DOM动画;采用c/s模式提升弱网表现,虽然有client端但可以即点即用。
这些是不是和流应用很像?
当然更真实的情况是,DCloud在2015年就给微信团队演示了流应用,DCloud的流应用让微信看到了一个新技术拐点的到来,我们如何优化html5的体验,又如何强化html5的优势,包括即扫即得的快码、像发消息一样分享应用,包括扫码、分享的直达二级页面,都成为目前微信小程序的重要应用场景。
不过我们并不埋怨什么,而是非常感谢微信,因为仅靠DCloud一家是难以快速教育市场的,没有微信小程序,不会有这么多人意识到强化过的HTML5可以达到原生体验。
当html5将替代原生成为主流技术平台的大幕拉起时,我们要做出比微信小程序体验更好、功能UI更加丰富、商业模式更加开放的产品,给开发者和用户更自由、更优质的选择。
在过去的2016年,我们也很高兴的看到一大批优秀的大型App入驻流应用平台,我们对html5优势的发掘,在商用环境中被证明,出现了一批体验良好、付费转化率达到原生水准、而获客成本又数倍低于原生App的案例,给开发商和用户带来了真真切切的价值。
可以看看这些操作视频:
36kr流应用
2秒快速启动、快速切换窗体、窗体滑动跟手、脱线可用,完全原生体验。
唯品会流应用
2秒快速启动、左右tab跟手拖动切换、下拉刷新、快速窗体进入,已在商用环境中取到良好证明,付费转化率、获客成本各项数据指标都获得成功。
体验方式,下载流应用管理器
HBuilder8.0,是HBuilder的一个里程碑产品,这次更新大幅强化了HTML5的性能体验,在启动速度、窗体切换速度、拖动等人机交互流畅度上达到了新的高度。
过去的HBuilder版本,已经帮助很多开发商取得成功,完全基于HTML5+打包的App中,美丽修行在Appstore健康健美分类中排名14、弈客围棋在Appstore体育分类中排名52、悟空理财在Appstore财务分类中排名86……
相信HBuilder8.0的发布,能帮助更多HTML5开发者取得成功,收获更多用户!
点击如下链接,了解HBuilder 8.0 更新日志及性能优化解读:http://ask.dcloud.net.cn/question/27999
从2014年正式发布,3岁多的HBuilder正式发布了8.0,巧的是HBuilder的开发者数量也正好达到了80万。
中国HTML5开发者一共有多少我们不知道,但HBuilder确认是中国的主流HTML5开发工具无疑了。
在此之前,中国人制作开发工具从未成功过,有尝试者,都败在海外产品下。
如今我们终于可以自豪的说,HBuilder,可以和任何海外顶尖开发工具平起平坐!
成为主流开发工具,是一种荣誉,更是一种责任。
中国的HTML5发展,DCloud可以、也应当做更多事。
在过去的2016年,HTML5行业发生了重大的变化。不是喊HTML5元年来了,这次不是狼来了,是狼真的来了。
在微信小程序和流应用的影响下,人们终于认识到,HTML5经过强化后,是完全可达到商用标准的。
微信小程序虽然是私有语法,但wxml在手机端运行时也会翻译成html,其对HTML5的各种增强优化措施比如:多webview,采用webview动画来替代低效的DOM动画;采用c/s模式提升弱网表现,虽然有client端但可以即点即用。
这些是不是和流应用很像?
当然更真实的情况是,DCloud在2015年就给微信团队演示了流应用,DCloud的流应用让微信看到了一个新技术拐点的到来,我们如何优化html5的体验,又如何强化html5的优势,包括即扫即得的快码、像发消息一样分享应用,包括扫码、分享的直达二级页面,都成为目前微信小程序的重要应用场景。
不过我们并不埋怨什么,而是非常感谢微信,因为仅靠DCloud一家是难以快速教育市场的,没有微信小程序,不会有这么多人意识到强化过的HTML5可以达到原生体验。
当html5将替代原生成为主流技术平台的大幕拉起时,我们要做出比微信小程序体验更好、功能UI更加丰富、商业模式更加开放的产品,给开发者和用户更自由、更优质的选择。
在过去的2016年,我们也很高兴的看到一大批优秀的大型App入驻流应用平台,我们对html5优势的发掘,在商用环境中被证明,出现了一批体验良好、付费转化率达到原生水准、而获客成本又数倍低于原生App的案例,给开发商和用户带来了真真切切的价值。
可以看看这些操作视频:
36kr流应用
2秒快速启动、快速切换窗体、窗体滑动跟手、脱线可用,完全原生体验。
唯品会流应用
2秒快速启动、左右tab跟手拖动切换、下拉刷新、快速窗体进入,已在商用环境中取到良好证明,付费转化率、获客成本各项数据指标都获得成功。
体验方式,下载流应用管理器
HBuilder8.0,是HBuilder的一个里程碑产品,这次更新大幅强化了HTML5的性能体验,在启动速度、窗体切换速度、拖动等人机交互流畅度上达到了新的高度。
过去的HBuilder版本,已经帮助很多开发商取得成功,完全基于HTML5+打包的App中,美丽修行在Appstore健康健美分类中排名14、弈客围棋在Appstore体育分类中排名52、悟空理财在Appstore财务分类中排名86……
相信HBuilder8.0的发布,能帮助更多HTML5开发者取得成功,收获更多用户!
点击如下链接,了解HBuilder 8.0 更新日志及性能优化解读:http://ask.dcloud.net.cn/question/27999

获取当前app的版本号
plus.runtime.version; //获取当前版本号
注:此功能只有在打包后才起作用。
plus.runtime.version; //获取当前版本号
注:此功能只有在打包后才起作用。

获取网络类型
// H5 plus事件处理
function plusReady(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW]="网络连接状态未知";
types[plus.networkinfo.CONNECTION_NONE]="未连接网络";
types[plus.networkinfo.CONNECTION_ETHERNET]="有线网络";
types[plus.networkinfo.CONNECTION_WIFI]="WIFI";
types[plus.networkinfo.CONNECTION_CELL2G]="2G";
types[plus.networkinfo.CONNECTION_CELL3G]="3G";
types[plus.networkinfo.CONNECTION_CELL4G]="4G";
console.log("Network: " + types[plus.networkinfo.getCurrentType()]);
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
// H5 plus事件处理
function plusReady(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW]="网络连接状态未知";
types[plus.networkinfo.CONNECTION_NONE]="未连接网络";
types[plus.networkinfo.CONNECTION_ETHERNET]="有线网络";
types[plus.networkinfo.CONNECTION_WIFI]="WIFI";
types[plus.networkinfo.CONNECTION_CELL2G]="2G";
types[plus.networkinfo.CONNECTION_CELL3G]="3G";
types[plus.networkinfo.CONNECTION_CELL4G]="4G";
console.log("Network: " + types[plus.networkinfo.getCurrentType()]);
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
收起阅读 »

localStorage 获取长度和值
for(var i=localStorage.length - 1 ; i >=0; i--){
console.log("log:"+localStorage.key(i));
console.log('第'+ (i+1) +'条数据的键值为:' + localStorage.key(i) +',数据为:' + localStorage.getItem(localStorage.key(i)));
}
for(var i=localStorage.length - 1 ; i >=0; i--){
console.log("log:"+localStorage.key(i));
console.log('第'+ (i+1) +'条数据的键值为:' + localStorage.key(i) +',数据为:' + localStorage.getItem(localStorage.key(i)));
}
收起阅读 »

网络状态
//=======================手机网络状态=============================
document.addEventListener("netchange", function() {
var network = plus.networkinfo.getCurrentType();
if(network < 2) {
if(this.network > 1) {
plus.nativeUI.toast('您的网络已断开', undefined, '期待乐');
}
}if(this.network == 3 && network > 3) {
plus.nativeUI.toast('您网络已从wifi切换到蜂窝网络,浏览会产生流量', undefined, '期待乐', '我知道了');
}
this.network=network;
});
//=======================手机网络状态=============================
document.addEventListener("netchange", function() {
var network = plus.networkinfo.getCurrentType();
if(network < 2) {
if(this.network > 1) {
plus.nativeUI.toast('您的网络已断开', undefined, '期待乐');
}
}if(this.network == 3 && network > 3) {
plus.nativeUI.toast('您网络已从wifi切换到蜂窝网络,浏览会产生流量', undefined, '期待乐', '我知道了');
}
this.network=network;
});
收起阅读 »

退出
var first = null;
mui.back = function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
plus.runtime.quit();
}
}
};
var first = null;
mui.back = function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
plus.runtime.quit();
}
}
};
收起阅读 »

多语言
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
function plusReady(){
var Language=localStorage.getItem("Language");
if(Language=="zh"){
var dynamic=document.createElement("script");
dynamic.src="js/locale_en_US.js";
document.head.appendChild(dynamic);
}
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
function plusReady(){
var Language=localStorage.getItem("Language");
if(Language=="zh"){
var dynamic=document.createElement("script");
dynamic.src="js/locale_en_US.js";
document.head.appendChild(dynamic);
}
}
收起阅读 »

分享实现类似QQ的自动登陆的方法,代码比较简单,主要是给大家提供一个实现逻辑,具体的要结合自身的app来做
在官方的群里面发现很多朋友都希望能实现自动登陆的效果,但是可能因为没有做过app,所以缺乏相应的思路,今天我来和大家分享一下我的一个思路
1.首先我们在index.html页面下面进行是否登陆的判断,以及执行自动登陆等操作
index页面为你的底部导航页,因为底部导航页是你进入app的启动页面
index页面的代码如下
//监听加载事件,执行自动登陆方法
window.addEventListener('load',function(){
loginagin();
});
//定义自动登陆的方法,如果本地存储存在则执行主动登陆,如果不存在则打开登陆页面,隐藏index页面
var ph=localStorage.getItem('ph');//本地存储,存储你的用户名
var passwrod =localStorage.getItem('password');//本地存储,存储你的密码
//真实项目下应该存储一个服务器返回的token,通过token来实现自动登陆,保护用户的数据安全
function loginagin()
{ if (localStorage.getItem('ph')&&localStorage.getItem('password')) {
mui.post('登陆接口地址',{ //请求接口地址
username:ph,
password:passwrod
},
function(data){ //data为服务器端返回数据
var lg=JSON.parse(data);
console.log(JSON.stringify(data));
console.log(data.status);
console.log(data.msg);
localStorage.setItem('user',data.user_id);
localStorage.setItem('token',data.access_token);
localStorage.setItem('status',data.status);
//通知个人中心页,更新用户数据
var upLogin =['ihome.html']
ca.sendNotice(upLogin,'update_user',{
userid:lg.user_id ,
token:lg.access_token,
status:lg.status
});
},'json'
);
}
else
{
mui.plusReady(function(){
plus.webview.open('login.html','login.html');
plus.webview.currentWebview().hide();//不可以把index页面关闭否则无非执行通知等
});
}
};
....................................................................................................................................................
2.在登陆页面,执行登陆完成后把inde页面显示出来
//登陆成功后把index页面显示出来,并关闭登陆页面
mui.plusReady(function(){
plus.webview.getLaunchWebview().show();
});
ca.closeCurrentInterface();
到此整个的业务逻辑就完成了实际测试了一下是可以实现类似qq登陆的效果。代码比较简单,大神勿喷!!!!!!!!!!!!!
第一次发帖,希望大家给点鼓励!!!!!
在官方的群里面发现很多朋友都希望能实现自动登陆的效果,但是可能因为没有做过app,所以缺乏相应的思路,今天我来和大家分享一下我的一个思路
1.首先我们在index.html页面下面进行是否登陆的判断,以及执行自动登陆等操作
index页面为你的底部导航页,因为底部导航页是你进入app的启动页面
index页面的代码如下
//监听加载事件,执行自动登陆方法
window.addEventListener('load',function(){
loginagin();
});
//定义自动登陆的方法,如果本地存储存在则执行主动登陆,如果不存在则打开登陆页面,隐藏index页面
var ph=localStorage.getItem('ph');//本地存储,存储你的用户名
var passwrod =localStorage.getItem('password');//本地存储,存储你的密码
//真实项目下应该存储一个服务器返回的token,通过token来实现自动登陆,保护用户的数据安全
function loginagin()
{ if (localStorage.getItem('ph')&&localStorage.getItem('password')) {
mui.post('登陆接口地址',{ //请求接口地址
username:ph,
password:passwrod
},
function(data){ //data为服务器端返回数据
var lg=JSON.parse(data);
console.log(JSON.stringify(data));
console.log(data.status);
console.log(data.msg);
localStorage.setItem('user',data.user_id);
localStorage.setItem('token',data.access_token);
localStorage.setItem('status',data.status);
//通知个人中心页,更新用户数据
var upLogin =['ihome.html']
ca.sendNotice(upLogin,'update_user',{
userid:lg.user_id ,
token:lg.access_token,
status:lg.status
});
},'json'
);
}
else
{
mui.plusReady(function(){
plus.webview.open('login.html','login.html');
plus.webview.currentWebview().hide();//不可以把index页面关闭否则无非执行通知等
});
}
};
....................................................................................................................................................
2.在登陆页面,执行登陆完成后把inde页面显示出来
//登陆成功后把index页面显示出来,并关闭登陆页面
mui.plusReady(function(){
plus.webview.getLaunchWebview().show();
});
ca.closeCurrentInterface();
到此整个的业务逻辑就完成了实际测试了一下是可以实现类似qq登陆的效果。代码比较简单,大神勿喷!!!!!!!!!!!!!
第一次发帖,希望大家给点鼓励!!!!!