HBuilder开发IOS-Android-APP

下载并安装: HBuilder
 
 
创建项目:ohyewang
 

index.html

  1. <!DOCTYPE html>  
  2. <html>  
  3.   
  4.     <head>  
  5.         <meta charset="utf-8">  
  6.         <title>Hello MUI</title>  
  7.         <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">  
  8.         <meta name="apple-mobile-web-app-capable" content="yes">  
  9.         <meta name="apple-mobile-web-app-status-bar-style" content="black">  
  10.   
  11.         <link rel="stylesheet" href="css/mui.min.css">  
  12.         <style>  
  13.             html,  
  14.             body {  
  15.                 background-color: #efeff4;  
  16.             }  
  17.               
  18.             p {  
  19.                 text-indent: 22px;  
  20.             }  
  21.               
  22.             span.mui-icon {  
  23.                 font-size: 14px;  
  24.                 color: #007aff;  
  25.                 margin-left: -15px;  
  26.                 padding-right: 10px;  
  27.             }  
  28.               
  29.             .mui-off-canvas-left {  
  30.                 color: #fff;  
  31.             }  
  32.               
  33.             .title {  
  34.                 margin: 35px 15px 10px;  
  35.             }  
  36.               
  37.             .title+.content {  
  38.                 margin: 10px 15px 35px;  
  39.                 color: #bbb;  
  40.                 text-indent: 1em;  
  41.                 font-size: 14px;  
  42.                 line-height: 24px;  
  43.             }  
  44.               
  45.             input {  
  46.                 color: #000;  
  47.             }  
  48.         </style>  
  49.     </head>  
  50.   
  51.     <body>  
  52.         <div id="offCanvasWrapper" class="mui-off-canvas-wrap mui-draggable">  
  53.             <!--侧滑菜单部分-->  
  54.             <aside id="offCanvasSide" class="mui-off-canvas-left">  
  55.                 <div id="offCanvasSideScroll" class="mui-scroll-wrapper">  
  56.                     <div class="mui-scroll">  
  57.                         <div class="title">查询分类</div>  
  58.                         <div class="content">  
  59.   
  60.                         </div>  
  61.                     </div>  
  62.                 </div>  
  63.             </aside>  
  64.   
  65.             <!--主界面部分 mui-inner-wrap -->  
  66.             <div class="mui-scroll-wrapper">  
  67.                 <header class="mui-bar mui-bar-nav">  
  68.                     <a href="#offCanvasSide" class="mui-icon mui-action-menu mui-icon-bars mui-pull-left"></a>  
  69.                     <h1 class="mui-title">噢耶网—生活小贴士</h1>  
  70.                 </header>  
  71.   
  72.                 <body>  
  73.                     <div id="pullrefresh" class="mui-scroll">  
  74.                         <!--数据列表-->  
  75.                         <ul class="mui-table-view">  
  76.                         </ul>  
  77.                     </div>  
  78.                 </body>  
  79.                 <!-- off-canvas backdrop -->  
  80.                 <div class="mui-off-canvas-backdrop"></div>  
  81.             </div>  
  82.         </div>  
  83.         <script src="js/mui.min.js"></script>  
  84.         <script>  
  85.             mui.init({  
  86.                 pullRefresh: {  
  87.                     container: '#pullrefresh',  
  88.                     down: {  
  89.                         style: 'circle',  
  90.                         callback: pulldownRefresh  
  91.                     },  
  92.                     up: {  
  93.                         auto: true,  
  94.                         contentrefresh: '正在加载...',  
  95.                         callback: pullupRefresh  
  96.                     }  
  97.                 }  
  98.             });  
  99.   
  100.             var totalPage = 1;  
  101.             var current_page = 1;  
  102.   
  103.             function pullupRefresh() {  
  104.   
  105.                 addData("up");  
  106.   
  107.             }  
  108.             // 创建并显示新窗口  
  109.             function createA(url) {  
  110.                 var w = plus.webview.create(url);  
  111.                 plus.webview.show(w); // 显示窗口  
  112.             }  
  113.   
  114.             function addData(tag) {  
  115.   
  116.                 if(current_page != 1 && current_page > totalPage) {  
  117.                     alert("已加载到最后一页");  
  118.                     setTimeout(function() {  
  119.                         mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed  
  120.                         mui('#pullrefresh').pullRefresh().endPullupToRefresh(); //refresh completed  
  121.                     }, 150);  
  122.                     return;  
  123.                 }  
  124.                 var xhr = new plus.net.XMLHttpRequest();  
  125.                 xhr.onreadystatechange = function() {  
  126.                     switch(xhr.readyState) {  
  127.                         case 4:  
  128.                             if(xhr.status == 200) {  
  129.   
  130.                                 var jsonObj = eval('(' + xhr.responseText + ')');  
  131.                                 var totalCount = jsonObj.TotalCount;  
  132.                                 totalPage = parseInt(totalCount / 10);  
  133.                                 if(totalCount % 10 != 0) {  
  134.                                     totalCount++;  
  135.                                 }  
  136.                                 var items = eval('(' + jsonObj.Data + ')');  
  137.                                 var table = document.body.querySelector('.mui-table-view');  
  138.                                 var cells = document.body.querySelectorAll('.mui-table-view-cell');  
  139.                                 for(var i = 0; i < items.length; i++) {  
  140.                                     var item = items[i];  
  141.                                     var li = document.createElement('li');  
  142.                                     li.className = 'mui-table-view-cell';  
  143.                                     li.innerHTML = '<a   href=\'javascript:createA("' + item.Href + '")\'><img class="mui-pull-left" src="http://ohyewang.com/ItemHandle/ShowImageFromFileForMobile.aspx?id=' + item.ImgPath + '" style="width:80px;height: 100px;" ><div class="mui-media-body">' + item.Title + '</div></a>';  
  144.                                     if(tag == "down") {  
  145.                                         table.insertBefore(li, table.firstChild);  
  146.                                     } else {  
  147.                                         table.appendChild(li);  
  148.                                     }  
  149.                                 }  
  150.                                 current_page++;  
  151.                                 setTimeout(function() {  
  152.                                     mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed  
  153.                                     mui('#pullrefresh').pullRefresh().endPullupToRefresh(); //refresh completed  
  154.                                 }, 150);  
  155.                             } else {  
  156.                                 alert("xhr请求失败:" + xhr.readyState);  
  157.   
  158.                             }  
  159.                             break;  
  160.                         default:  
  161.                             break;  
  162.                     }  
  163.                 }  
  164.                 xhr.open("GET", "http://ohyewang.com/index/WebAngularItemList.aspx?&fl=3c44b493-ab9e-4e67-a81a-7c8155990bca&id=" + current_page + "&lm=fa9c6590-0612-4045-82d3-04c14a38a32e&page_size=20");  
  165.                 xhr.send();  
  166.             }  
  167.             /**  
  168.              * 下拉刷新具体业务实现  
  169.              */  
  170.             function pulldownRefresh() {  
  171.   
  172.                 addData("down");  
  173.   
  174.             }  
  175.   
  176.             //侧滑容器父节点  
  177.             var offCanvasWrapper = mui('#offCanvasWrapper');  
  178.             //主界面容器  
  179.             var offCanvasInner = offCanvasWrapper[0].querySelector('.mui-inner-wrap');  
  180.             //菜单容器  
  181.             var offCanvasSide = document.getElementById("offCanvasSide");  
  182.             if(!mui.os.android) {  
  183.                 document.getElementById("move-togger").classList.remove('mui-hidden');  
  184.                 var spans = document.querySelectorAll('.android-only');  
  185.                 for(var i = 0len = spans.length; i < len; i++) {  
  186.                     spans[i].style.display = "none";  
  187.                 }  
  188.             }  
  189.             //移动效果是否为整体移动  
  190.             var moveTogether = false;  
  191.             //侧滑容器的class列表,增加.mui-slide-in即可实现菜单移动、主界面不动的效果;  
  192.             var classList = offCanvasWrapper[0].classList;  
  193.             //变换侧滑动画移动效果;  
  194.             mui('.mui-input-group').on('change', 'input', function() {  
  195.                 if(this.checked) {  
  196.                     offCanvasSide.classList.remove('mui-transitioning');  
  197.                     offCanvasSide.setAttribute('style', '');  
  198.                     classList.remove('mui-slide-in');  
  199.                     classList.remove('mui-scalable');  
  200.                     switch(this.value) {  
  201.                         case 'main-move':  
  202.                             if(moveTogether) {  
  203.                                 //仅主内容滑动时,侧滑菜单在off-canvas-wrap内,和主界面并列  
  204.                                 offCanvasWrapper[0].insertBefore(offCanvasSide, offCanvasWrapper[0].firstElementChild);  
  205.                             }  
  206.                             break;  
  207.                         case 'main-move-scalable':  
  208.                             if(moveTogether) {  
  209.                                 //仅主内容滑动时,侧滑菜单在off-canvas-wrap内,和主界面并列  
  210.                                 offCanvasWrapper[0].insertBefore(offCanvasSide, offCanvasWrapper[0].firstElementChild);  
  211.                             }  
  212.                             classList.add('mui-scalable');  
  213.                             break;  
  214.                         case 'menu-move':  
  215.                             classList.add('mui-slide-in');  
  216.                             break;  
  217.                         case 'all-move':  
  218.                             moveTogether = true;  
  219.                             //整体滑动时,侧滑菜单在inner-wrap内  
  220.                             offCanvasInner.insertBefore(offCanvasSide, offCanvasInner.firstElementChild);  
  221.                             break;  
  222.                     }  
  223.                     offCanvasWrapper.offCanvas().refresh();  
  224.                 }  
  225.             });  
  226.             //主界面‘显示侧滑菜单’按钮的点击事件  
  227.             document.getElementById('offCanvasShow').addEventListener('tap', function() {  
  228.                 offCanvasWrapper.offCanvas('show');  
  229.             });  
  230.             //菜单界面,‘关闭侧滑菜单’按钮的点击事件  
  231.             document.getElementById('offCanvasHide').addEventListener('tap', function() {  
  232.                 offCanvasWrapper.offCanvas('close');  
  233.             });  
  234.             //主界面和侧滑菜单界面均支持区域滚动;  
  235.             mui('#offCanvasSideScroll').scroll();  
  236.             mui('#offCanvasContentScroll').scroll();  
  237.             //实现ios平台原生侧滑关闭页面;  
  238.             if(mui.os.plus && mui.os.ios) {  
  239.                 mui.plusReady(function() { //5+ iOS暂时无法屏蔽popGesture时传递touch事件,故该demo直接屏蔽popGesture功能  
  240.                     plus.webview.currentWebview().setStyle({  
  241.                         'popGesture': 'none'  
  242.                     });  
  243.                 });  
  244.             }  
  245.         </script>  
  246.     </body>  
  247.   
  248. </html>  
 
打包:


 
 
运行效果:


 
 




   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值