带导航条的Window
在打开新的window的时候,为了给用户更好的体验,可以打开保留原生头的window页面,然后再加载内容,这样避免加载内容过多的时候页面空白。
使用方法:
使用openWin方法,设置参数create为false.
示例:
summer.openWin({
id : 'main',
url : "html/userdetail.html", //此处设置要打开的window路径
pageParam: { //通过pageParam来传递需要的参数
username: title,
email:email
},
create: "false", //保留原生的header
type: "actionBar",
actionBar: {
title: title,
titleColor: "#333333",
backgroundColor: "#ffffff",
leftItem:{ //设置导航来左侧显示的内容
image: "img/go_back.png", //此处设置左侧显示为一个返回箭头的图片
method:"" //此处不需要回调方法,所以设置为空
}
}
});
效果图:
预加载
对于应用内有多个frame的情况,为了保证各个frame之间相互切换更加流畅,可以使用预加载方法,在用户打开应用时提前加载出所有的frame页面,这样在用户进入应用使用时切换各页面将不会出现白屏现象。
使用方法:
使用openFrameGroup方法,提前打开多个frame页面,然后通过setFrameAttr方法来显示需要的frame页面。
示例:
var top = $summer.offset($summer.byId('header')).h;
var bottom = $summer.offset($summer.byId('footer')).h;
summer.openFrameGroup({
id: 'group1',
background: '#ffffff',
scrollEnabled: false,
position: {
top: top,
bottom: bottom,
left: 0,
right: 0,
},
index: 1,
frames: [{
id: 'message',
url: 'html/message.html',
bgColor: '#ffffff',
hidden: true
}, {
id: 'connect',
url: 'html/connect.html',
bgColor: '#ffffff',
hidden: false
}, {
id: 'application',
url: 'html/application.html',
bgColor: '#ffffff',
hidden: true
}, {
id: 'my',
url: 'html/my.html',
bgColor: '#ffffff',
hidden: true
}]
}, function(ret, err) {
var index = ret.index;
alert(index);
});
}
//通过setFrameGroupAttr方法设置frame的索引值来显示页面
function openTab(index){
summer.setFrameGroupAttr({
id : 'group1',
index : index //set显示页面的index值
});
}
热更新
和EMM平台相结合,采取服务端更新版本方式,不需要用户手动更新应用,用户点击应用时会自行判断是否需要安装或更新,使用静默升级的方式。
步骤:
1.配置emm server信息:emm.writeConfig()
2.注册设备:emm.registerDevice()
3.获取用户列表:emm.getUserCommonApps()
4.获取系统列表:emm.getSystemApps()
5.点击app做判断:
1)判断是否安装:如果未安装,进行安装: emm.installWebApp()
2)若已安装,判断是否需要升级:如果需要升级,进行升级:emm.upgradeWebApp()
3)若不需要升级,打开应用:emm.openWebApp()
示例:
function init(){
emm.writeConfig({ //设置emm server host和port
"host": "https://emm.yonyoucloud.com",
"port": "443"
});
emm.registerDevice({ //注册device
"username" : "xxx",
"password" : "xxxxxxxx",
"companyId":'xxxx'
},function(ret){
//alert("注册设备成功:" + $summer.jsonToStr(ret));
},function(ret){
alert("注册设备失败:" + $summer.jsonToStr(ret));
});
}
/*获取常用app*/
function getUserCommonApps(){
emm.getUserCommonApps({
"userid": "xxx", //用户名
"companyId":'xxx', //租户id
"categoryname":'常用应用' //该分类是指在emm server上创建的分类名称
}, function userAppsS(res){
alert(res.result);
},function userAppsE(res){
$summer.alert(res);
alert('获取用户app列表失败!!!');
});
}
/*获取全部app*/
function getSystemApps(){
emm.getSystemApps({
"userid": "xxx",
"companyId":'xxx'
},function sysAppsS(res){
alert(res.result);
},function sysAppE(res){
$summer.alert(res);
alert('获取系统app列表失败!!!');
});
}
/*点击应用*/
function clickApp(obj) {
var title=$(obj).parents('.um-sortable').prev('.modal-title');
var groupId=title.text();
var appid = $(obj).attr('data-id');
var isInstall = $(obj).attr('data-installed');
var isupdate=$(obj).attr('data-isupdate');
var version=$(obj).attr('data-version');
var downloadURL=$(obj).attr('data-downloadURL');
/*新添加字段,启动页*/
var homepage=$(obj).attr('data-homepage');
/*给列表添加选择类*/
$(obj).addClass('click-target');
if(groupId != ""){
if (isInstall == 'true') {
if(isupdate=='true'){
upgrade(appid,version,downloadURL);
}else{
openApp(appid,homepage);
}
} else if(isInstall=='false'){
appInstall(appid,version,downloadURL);
}
}
}
/*安装应用*/
function appInstall(appid,version,downloadURL) {
emm.installWebApp({
"appid": appid,
"version":version,
"downloadURL":downloadURL,
}, "installS()", "instllE()")
}
/*安装成功*/
function installS(ret) {
console.log(ret);
if (ret.isfinish == 1) {
summer.toast({msg:'安装完成'});
}
}
/*安装失败*/
function instllE(res) {
$summer.alert(res);
}
/*升级应用*/
function upgrade(appid,version,downloadURL){
emm.upgradeWebApp({
"appid":appid,
"version":version,
"downloadURL":downloadURL,
},"upgradeS()","upgradeE()")
}
/*升级应用成功*/
function upgradeS(ret){
if (ret.isfinish == 1) {
summer.toast({msg:'升级完成'});
}
}
/*升级应用失败*/
function upgradeE(res){
$summer.alert(res);
}
/*打开应用*/
function openApp(appid,homepage) {
emm.openWebApp({
"appid": appid,
"homepage":homepage,
"params": {}
}, "openS()", "openE()")
}
/*打开应用成功*/
function openS(ret) {
alert($summer.jsonToStr(ret));
}
/*打开应用失败*/
function openE(ret) {
alert($summer.jsonToStr(ret));
}
[用例github下载地址]
文档更新时间: 2018-06-06 13:54