基於Html5 Plus + Vue + Mui 移動App 開發(二)

来源:https://www.cnblogs.com/henxiao25/archive/2018/09/04/9588846.html
-Advertisement-
Play Games

基於Html5 Plus + Vue + Mui 移動App 開發(二) 界面效果: 本頁面採用Html5 Plus + Vue + Mui 開發移動界面,本頁面實現: 1、下拉刷新、上拉獲取更多功能; 2、使用Vue 進行數據綁定; 3、使用WebView 創建打開新的界面; 源碼如下: App下 ...


基於Html5 Plus + Vue + Mui 移動App 開發(二)

界面效果:

本頁面採用Html5 Plus + Vue + Mui 開發移動界面,本頁面實現:

1、下拉刷新、上拉獲取更多功能;

2、使用Vue 進行數據綁定;

3、使用WebView 創建打開新的界面;

源碼如下:

<!doctype html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>實全科技</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <link href="css/mui.min.css" rel="stylesheet" />
    </head>

    <body>
        <header class="mui-bar mui-bar-nav">
            <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
            <h1 id="title" class="mui-title">實全科技</h1>
        </header>
        <div class="mui-content mui-scroll-wrapper" id="tableView">
            <div class="mui-card" v-for="item in news">
                <div class="mui-card-header">
                    <label v-html="item.title">營業執照</label>
                </div>
                <div class="mui-card-content">
                    <div class="mui-card-content-inner mui-navigate-right" @tap="opendetail(item)" >
                        <p v-html="item.content"></p>
                        <div style="background:no-repeat;" v-for="url in item.imageUrls">
                            <img v-bind:src="url" style="width:100%;display:inline-block;height:auto;" />
                        </div>
                    </div>
                </div>
                <div class="mui-card-footer">
                    <h5>時間:<label v-html="item.publishDateStr"></label> 作者:<label v-html="item.posterScreenName"></label></h5>
                </div>
            </div>
            <div style="margin-bottom: 20px; text-align: center;"></div>
        </div>
        
        <script src="js/mui.min.js"></script>
        <script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/shiquan.setting.js" type="text/javascript"></script>
        <script type="text/javascript">
            var vue = new Vue({
                el: '#tableView',
                data: {
                    news: [] //列表信息流數據
                }
            });    
            //mui初始化,配置下拉刷新
            mui.init({
                pullRefresh: {
                    container: '#tableView',
                    down: {
                        style: 'circle',
                        offset: '0px',
                        auto: true,
                        callback: function() {
                            if(window.plus && plus.networkinfo.getCurrentType() === plus.networkinfo.CONNECTION_NONE) {
                                plus.nativeUI.toast('似乎已斷開與互聯網的連接', {
                                    verticalAlign: 'top'
                                });
                                return;
                            }
                            pullRefreshDown();
                        }
                    },
                    up: {
                        height: 50,
                        auto: true,
                        contentrefresh: '正在載入...',
                        contentnomore: '沒有更多數據了', //可選,請求完畢若沒有更多數據時顯示的提醒內容;
                        callback: pullupRefresh
                    }
                }
            });
            var loadData = false;
            var hasNext = false;
            var pageToken = "";
            var keyword = "";
            function pullRefreshDown(){
                setTimeout(function(){
                    if(keyword == ""){
                        mui('#tableView').pullRefresh().endPulldown();
                        return;
                    }
                    if(loadData){
                        return;
                    }
                    //keyword = keyword || "新聞";
                    //請求列表信息流
                    let ajaxUrl = shiquan.SERVERURL+'/news/qihoo?apikey='+shiquan.APIKEY + "&site="+shiquan.SITE + "&kw="+keyword;
                    console.log("ajaxUrl="+ajaxUrl);
                    mui.ajax(ajaxUrl,{
                        data:{},
                        dataType:'json',//伺服器返回json格式數據
                        type:'get',//HTTP請求類型
                        timeout:30000,//超時時間設置為10秒;
                        headers:{'Content-Type':'application/json'},                  
                        success:function(result){
                            mui('#tableView').pullRefresh().endPulldown();
                            if(result.retcode != "000000"){
                                plus.nativeUI.toast("讀取失敗:"+result.message);
                                return;
                            }
                            console.log(JSON.stringify(result));
                            hasNext = result.hasNext;
                            pageToken = result.pageToken;
                            vue.news = result.data;
                        },
                        error:function(xhr,type,errorThrown){
                            mui('#tableView').pullRefresh().endPulldown();
                            //異常處理;
                            console.log("error:xhr="+xhr+" type="+type + " thrown="+errorThrown);
                        }
                    });
                },1500);
            };
            
            function pullupRefresh() {
                setTimeout(function() {
                    console.log("hasNext:" + hasNext);
                    console.log("pageToken:" + pageToken);
                    mui('#tableView').pullRefresh().endPullup(hasNext == false); //參數為true代表沒有更多數據了。
                    if(hasNext == false)
                        return;
                        
                    if(keyword == ""){
                        return;
                    }
                    //請求列表信息流
                    let ajaxUrl = shiquan.SERVERURL+'/news/qihoo?apikey='+shiquan.APIKEY + "&site="+shiquan.SITE + "&kw="+keyword+"&pageToken="+pageToken;
                    console.log("ajaxUrl="+ajaxUrl);
                    mui.ajax(ajaxUrl,{
                        data:{},
                        dataType:'json',//伺服器返回json格式數據
                        type:'get',//HTTP請求類型
                        timeout:30000,//超時時間設置為10秒;
                        headers:{'Content-Type':'application/json'},                  
                        success:function(result){
                            mui('#tableView').pullRefresh().endPulldown();
                            if(result.retcode != "000000"){
                                plus.nativeUI.alert("讀取失敗:"+result.message);
                                return;
                            }
                            console.log(JSON.stringify(result));
                            //vue.news = result.data;
                            hasNext = result.hasNext;
                            pageToken = result.pageToken;
                            result.data.forEach(function(item) {
                                vue.news.push(item);
                            });
                        },
                        error:function(xhr,type,errorThrown){
                            mui('#tableView').pullRefresh().endPulldown();
                            //異常處理;
                            console.log("error:xhr="+xhr+" type="+type + " thrown="+errorThrown);
                        }
                    });
                }, 2000);
            }
            mui.plusReady(function() {
                var self = plus.webview.currentWebview();
                keyword = self.keyword;
                document.getElementById("title").innerText = self.keyword || "實全科技";
            });

            /**
             * 打開新聞詳情
             * 
             * @param {Object} item 當前點擊的新聞對象
             */
            function opendetail(item) {
                mui.openWindow({ 
                    url: '360detail.html',
                    id: '360detail',
                    extras: {
                        title:item.title,
                        url: item.url
                    }
                });
            }
        </script>
    </body>

</html>

 

App下載地址:http://m3w.cn/shiquan 歡迎提供寶貴意見!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • mysql中 對於查詢結果只顯示n條連續行的問題 在領扣上碰到的一個題目:求滿足條件的連續3行結果的顯示 X city built a new stadium, each day many people visit it and the stats are saved as these column ...
  • 有一個網友問及,在SQL中,計算每一筆的結餘數。他提供的截圖說明: 實現這個功能,關鍵是獲取前一筆記錄eqty欄位的值。 下麵Insus.NET嘗試寫一下。使用最簡單的方法,就是迴圈每一筆記錄。然後可以計算 qty加上前一筆的eqty。 創建一個臨時表存儲原數: CREATE TABLE #tt ( ...
  • 1、B+樹基本概念 B+樹的語言定義比較複雜,簡單的說是為磁碟存取設計的平衡二叉樹 網上經典圖,黃色p1 p2 p3代表指針,藍色的代表磁碟,裡面包含數據項,第一層17,35,p1就代表小於17的,p2就代表17-35之間的,p3就代表大於35的,可是需要註意的是,第三層才是真實的數據,17、35都 ...
  • 我的操作系統是ubuntu18.04,以下是我的mysql版本: 安裝完成後,登錄mysql的時候就出現瞭如下錯誤: 因為安裝的過程中沒讓設置密碼,可能密碼為空,但無論如何都進不去mysql。 那麼該怎麼做呢,接下來就將這個解決方法自我總結記錄一下。 step1:在ubuntu的terminal(也 ...
  • 1、百度搜索oracle   也可以直接點擊進入    "oracle官網"   或直接進入    "下載頁面" 2、選擇中文,看的更容易些 3、拉到最下麵,選擇所有下載和試用 4、選擇資料庫下載 5、點擊下載對應版本的 ...
  • Druid.io(以下簡稱Druid)是2013年底開源出來的, 主要解決的是對實時數據以及較近時間的歷史數據的多維查詢提供高併發(多用戶),低延時,高可靠性的問題。 Druid簡介: Druid是一個為在大數據集之上做實時統計分析而設計的開源數據存儲。這個系統集合了一個面向列存儲的層,一個分散式、 ...
  • Herrt灬凌夜 https://www.cnblogs.com/wuyx/archive/2018/03.html ...
  • CodePush熱更新組件詳細接入教程 什麼是CodePush CodePush是一個微軟開發的雲伺服器。通過它,開發者可以直接在用戶的設備上部署手機應用更新。CodePush相當於一個中心倉庫,開發者可以推送當前的更新(包括JS/HTML/CSS/IMAGE等)到CoduPush,然後應用將會查詢 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...