带导航条的Window

在打开新的window的时候,为了给用户更好的体验,可以打开保留原生头的window页面,然后再加载内容,这样避免加载内容过多的时候页面空白。
使用方法:
使用openWin方法,设置参数create为false.
示例:

  1. summer.openWin({
  2. id : 'main',
  3. url : "html/userdetail.html", //此处设置要打开的window路径
  4. pageParam: { //通过pageParam来传递需要的参数
  5. username: title,
  6. email:email
  7. },
  8. create: "false", //保留原生的header
  9. type: "actionBar",
  10. actionBar: {
  11. title: title,
  12. titleColor: "#333333",
  13. backgroundColor: "#ffffff",
  14. leftItem:{ //设置导航来左侧显示的内容
  15. image: "img/go_back.png", //此处设置左侧显示为一个返回箭头的图片
  16. method:"" //此处不需要回调方法,所以设置为空
  17. }
  18. }
  19. });

效果图:

预加载

对于应用内有多个frame的情况,为了保证各个frame之间相互切换更加流畅,可以使用预加载方法,在用户打开应用时提前加载出所有的frame页面,这样在用户进入应用使用时切换各页面将不会出现白屏现象。
使用方法:
使用openFrameGroup方法,提前打开多个frame页面,然后通过setFrameAttr方法来显示需要的frame页面。
示例:

  1. var top = $summer.offset($summer.byId('header')).h;
  2. var bottom = $summer.offset($summer.byId('footer')).h;
  3. summer.openFrameGroup({
  4. id: 'group1',
  5. background: '#ffffff',
  6. scrollEnabled: false,
  7. position: {
  8. top: top,
  9. bottom: bottom,
  10. left: 0,
  11. right: 0,
  12. },
  13. index: 1,
  14. frames: [{
  15. id: 'message',
  16. url: 'html/message.html',
  17. bgColor: '#ffffff',
  18. hidden: true
  19. }, {
  20. id: 'connect',
  21. url: 'html/connect.html',
  22. bgColor: '#ffffff',
  23. hidden: false
  24. }, {
  25. id: 'application',
  26. url: 'html/application.html',
  27. bgColor: '#ffffff',
  28. hidden: true
  29. }, {
  30. id: 'my',
  31. url: 'html/my.html',
  32. bgColor: '#ffffff',
  33. hidden: true
  34. }]
  35. }, function(ret, err) {
  36. var index = ret.index;
  37. alert(index);
  38. });
  39. }
  40. //通过setFrameGroupAttr方法设置frame的索引值来显示页面
  41. function openTab(index){
  42. summer.setFrameGroupAttr({
  43. id : 'group1',
  44. index : index //set显示页面的index值
  45. });
  46. }

热更新

和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()
示例:

  1. function init(){
  2. emm.writeConfig({ //设置emm server host和port
  3. "host": "https://emm.yonyoucloud.com",
  4. "port": "443"
  5. });
  6. emm.registerDevice({ //注册device
  7. "username" : "xxx",
  8. "password" : "xxxxxxxx",
  9. "companyId":'xxxx'
  10. },function(ret){
  11. //alert("注册设备成功:" + $summer.jsonToStr(ret));
  12. },function(ret){
  13. alert("注册设备失败:" + $summer.jsonToStr(ret));
  14. });
  15. }
  16. /*获取常用app*/
  17. function getUserCommonApps(){
  18. emm.getUserCommonApps({
  19. "userid": "xxx", //用户名
  20. "companyId":'xxx', //租户id
  21. "categoryname":'常用应用' //该分类是指在emm server上创建的分类名称
  22. }, function userAppsS(res){
  23. alert(res.result);
  24. },function userAppsE(res){
  25. $summer.alert(res);
  26. alert('获取用户app列表失败!!!');
  27. });
  28. }
  29. /*获取全部app*/
  30. function getSystemApps(){
  31. emm.getSystemApps({
  32. "userid": "xxx",
  33. "companyId":'xxx'
  34. },function sysAppsS(res){
  35. alert(res.result);
  36. },function sysAppE(res){
  37. $summer.alert(res);
  38. alert('获取系统app列表失败!!!');
  39. });
  40. }
  41. /*点击应用*/
  42. function clickApp(obj) {
  43. var title=$(obj).parents('.um-sortable').prev('.modal-title');
  44. var groupId=title.text();
  45. var appid = $(obj).attr('data-id');
  46. var isInstall = $(obj).attr('data-installed');
  47. var isupdate=$(obj).attr('data-isupdate');
  48. var version=$(obj).attr('data-version');
  49. var downloadURL=$(obj).attr('data-downloadURL');
  50. /*新添加字段,启动页*/
  51. var homepage=$(obj).attr('data-homepage');
  52. /*给列表添加选择类*/
  53. $(obj).addClass('click-target');
  54. if(groupId != ""){
  55. if (isInstall == 'true') {
  56. if(isupdate=='true'){
  57. upgrade(appid,version,downloadURL);
  58. }else{
  59. openApp(appid,homepage);
  60. }
  61. } else if(isInstall=='false'){
  62. appInstall(appid,version,downloadURL);
  63. }
  64. }
  65. }
  66. /*安装应用*/
  67. function appInstall(appid,version,downloadURL) {
  68. emm.installWebApp({
  69. "appid": appid,
  70. "version":version,
  71. "downloadURL":downloadURL,
  72. }, "installS()", "instllE()")
  73. }
  74. /*安装成功*/
  75. function installS(ret) {
  76. console.log(ret);
  77. if (ret.isfinish == 1) {
  78. summer.toast({msg:'安装完成'});
  79. }
  80. }
  81. /*安装失败*/
  82. function instllE(res) {
  83. $summer.alert(res);
  84. }
  85. /*升级应用*/
  86. function upgrade(appid,version,downloadURL){
  87. emm.upgradeWebApp({
  88. "appid":appid,
  89. "version":version,
  90. "downloadURL":downloadURL,
  91. },"upgradeS()","upgradeE()")
  92. }
  93. /*升级应用成功*/
  94. function upgradeS(ret){
  95. if (ret.isfinish == 1) {
  96. summer.toast({msg:'升级完成'});
  97. }
  98. }
  99. /*升级应用失败*/
  100. function upgradeE(res){
  101. $summer.alert(res);
  102. }
  103. /*打开应用*/
  104. function openApp(appid,homepage) {
  105. emm.openWebApp({
  106. "appid": appid,
  107. "homepage":homepage,
  108. "params": {}
  109. }, "openS()", "openE()")
  110. }
  111. /*打开应用成功*/
  112. function openS(ret) {
  113. alert($summer.jsonToStr(ret));
  114. }
  115. /*打开应用失败*/
  116. function openE(ret) {
  117. alert($summer.jsonToStr(ret));
  118. }

[用例github下载地址]

文档更新时间: 2018-06-06 13:54