1. 程式人生 > >MUI 頁面跳轉、傳參與重新整理

MUI 頁面跳轉、傳參與重新整理

MUI教程

一、頁面跳轉

初始化時建立子頁面
mui.init({  
    subpages: [{  
        url: your - subpage - url, //子頁面HTML地址,支援本地地址和網路地址  
        id: your - subpage - id, //子頁面標誌  
        styles: {  
            top: subpage - top - position, //子頁面頂部位置  
            bottom: subpage - bottom - position, //子頁面底部位置  
            width: subpage - width, //子頁面寬度,預設為100%  
height: subpage - height, //子頁面高度,預設為100% ...... }, extras: {} //額外擴充套件引數 }] });
直接開啟新頁面

MUI封裝了自己的頁面開啟的方法

mui.openWindow({  
    url: new - page - url,  
    id: new - page - id,  
    styles: {  
        top: newpage - top - position, //新頁面頂部位置  
bottom: newage - bottom - position, //新頁面底部位置 width: newpage - width, //新頁面寬度,預設為100% height: newpage - height, //新頁面高度,預設為100% ...... }, extras: { ..... //自定義擴充套件引數,可以用來處理頁面間傳值 } show: { autoShow: true, //頁面loaded事件發生後自動顯示,預設為true
aniShow: animationType, //頁面顯示動畫,預設為”slide-in-right“; duration: animationTime //頁面動畫持續時間,Android平臺預設100毫秒,iOS平臺預設200毫秒; }, waiting: { autoShow: true, //自動顯示等待框,預設為true title: '正在載入...', //等待對話方塊上顯示的提示內容 options: { width: waiting - dialog - widht, //等待框背景區域寬度,預設根據內容自動計算合適寬度 height: waiting - dialog - height, //等待框背景區域高度,預設根據內容自動計算合適高度 ...... } } })
預載入頁面
// 方式1  
mui.init({  
    preloadPages: [{  
        url: prelaod - page - url,  
        id: preload - page - id,  
        styles: {}, //視窗引數  
        extras: {}, //自定義擴充套件引數  
        subpages: [{}, {}] //預載入頁面的子頁面  
    }]  
});  

// 方式2  
var page = mui.preload({  
    url: new - page - url,  
    id: new - page - id, //預設使用當前頁面的url作為id  
    styles: {}, //視窗引數  
    extras: {} //自定義擴充套件引數  
});  
子頁面使用場景
  1. 子頁面適用於側滑選單
  2. 子頁面適用於頻繁切換的情況
  3. 子頁面適用於下拉重新整理和上拉載入

二、頁面傳參

通過extras傳參
// 傳遞引數
mui.openWindow({url:'B.html',extras:{id:'100'}});

// 接收引數

var self=plus.webview.currentWebview();//獲取當前窗體物件
var receiveID=self.id;//接收A頁面傳入的id引數值
通過fire()傳參
// 傳遞引數 ( 要觸發其他頁面的自定義監聽事件必須要先進行頁面的預載入)
mui.init({
     preloadPages:[{
       id:'detail.html',
       url:'detail.html'
      }]
 });
mui.fire(plus.webview.getWebviewById('page-id'), "pageRefresh",{
    name: 'zhangsan'
  })
//  接收引數
window.addEventListener("pageRefresh", function (e) {
    //獲得事件引數
    var id = e.detail.id;
});

三、頁面重新整理

頁面切換時重新整理

webview有show事件及hide事件

先建立子頁面

            var subpages = ['./views/tab-webview-subpage-home.html', './views/tab-webview-subpage-list.html','./views/tab-webview-subpage-map.html', './views/tab-webview-subpage-setting.html'];
            var subpage_style = { // 子頁面位置調整
                top: '70px',
                bottom: '51px'
            };
            var aniShow = {};

             //建立子頁面,首個選項卡頁面顯示,其它均隱藏;
            mui.plusReady(function() {
                var self = plus.webview.currentWebview();
                for (var i = 0; i < 4; i++) {
                    var temp = {};
                    var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);
                    if (i > 0) {
                        sub.hide();
                    }else{
                        temp[subpages[i]] = "true";
                        mui.extend(aniShow,temp);
                    }

                    self.append(sub);
                }

                 plus.device.setWakelock(true);
            });

建立當前頁的 show 監聽事件。程式碼如下:

        mui.plusReady(function() {
            var self = plus.webview.currentWebview();
            self.addEventListener('show',function(){
                console.log('show');
                // ... 後續為渲染頁面程式碼
            });
        });
父頁面A跳轉到子頁面B,B頁面修改資料後再跳回A頁面,重新整理A頁面數
// 父頁面自定義頁面重新整理事件 
window.addEventListener("pageRefresh", function (e) {
    // 重新獲取資料或觸發重新整理
});
// 子頁面觸發父頁面的自定義頁面重新整理事件 
mui.fire(plus.webview.getWebviewById('page-id'), "pageRefresh" ); 
返回重新整理
           mui.plusReady(function() {
                var old_back = mui.back;
                mui.back = function() {
                    var wobj = plus.webview.getWebviewById("page-id"); 
                    wobj.reload(true);
                    old_back();
                }
            });
H5+的過載方法

在子頁面初始化時,註冊beforeback方法;

mui.init({  
    beforeback: function() {  
        //獲得列表介面的webview  
        var list = plus.webview.currentWebview().opener();  
        //觸發列表介面的自定義事件(refresh),從而進行資料重新整理  
        mui.fire(list, 'refresh');  
        //返回true,繼續頁面關閉邏輯  
        return true;  
    }  
});  

// 或者~
mui.init({
    beforeback: function(){
        //獲得列表介面的webview
        var i = plus.webview.getWebviewById("./views/lsit.html");
        if(i){
            //觸發列表介面的自定義事件(refresh),從而進行資料重新整理
            i.evalJS("getUserInfo()");
        }
        return true;
    }
});

在父頁面中新增事件監聽

window.addEventListener('refresh', function(e) {  
        location.reload();  
})  

這樣,在子頁面執行返回操作mui.back()的時候,會執行父頁面中的refesh事件,即location.reload(),重新整理父頁面;
官方文件說明:http://dev.dcloud.net.cn/mui/event/#customevent

相關推薦

MUI 頁面參與重新整理

MUI教程 一、頁面跳轉 初始化時建立子頁面 mui.init({ subpages: [{ url: your - subpage - url, //子頁面HTML地址,支援本地地址和網路地址

小程式頁面參及引數獲取

//wxml <text wx:for="{{titles}}" wx:key="{{index}}" bindtap='changeClassify' data-id="{{index}}">{{item.name}}</text> //js function cha

微信小程式之頁面

年前最後一天上班了,公司幾個人在上班,沒事做,還是來學習一下小程式吧。 本部落格說一下頁面跳轉,頁面跳轉又分為三種:跳轉新頁面,當前頁面跳轉及tab跳轉。 先來看看navigator相關屬性: 直接程式碼說話: 主頁面: <!--index

react專案中頁面重新整理及獲取網路狀態

// 頁面跳轉 window.location.href = 'http://speedtest.wangxiaotong.com/' // 頁面重新整理 window.location.reload() // 獲取當前網路狀態,只能判斷使用者電腦有沒有斷網(包括無線和有線),有網為true,沒有網

[Android UI介面] tab_Host頁面值,重新整理等問題彙總。

之前做了一個專案是關於Tab_Host的,現在完成了恰逢閒餘寫份總結,主要涉及裡面遇到問題以及解決方案的。 (首先說明這份程式碼是在eoe 下載的,這裡感謝分享的那位朋友,限於我的工程是公司的不能拿出來了,只能那這份原來的程式碼進行修改貼出來,歡迎拍磚);

H5頁面

性能 取數 body 獲取 sessions web 前端 javascrip a標簽 頁面之間的跳轉經常使用a標簽,使用mvc框架的都是通過訪問controller的請求方法,返回請求頁面。但本次開發,前端與後臺完全分離,前端APP使用HBuider來開發,後臺數據就無

vue頁面

跳轉 #<script> this.$router.push({path:'/index'}) #template <button @click="goToHome">首頁</button> #實用router-link <router-link

web中關於頁面

1、使用超連結<a href="/Default/Index">新增</a><a href="#">返回顯示資訊</a>:主頁地址格式是:/+控制器名+檢視名+/ 2、 然後在控制器中例項化多個產品物件,並存儲到泛型集合,最後一併通過View()方向傳遞給檢

微信小程式頁面邏輯層模組化

一、頁面的跳轉   微信小程式的頁面跳轉函式方法有兩個,另外還有兩種模組跳轉方式。   函式跳轉:   1.wx.navigateTo(OBJECT): wx.navigateTo({ url: 'test?id=1' })//保留當前頁面,跳轉到應用內的某個頁面

關於jQuery Mobile頁面後網頁不重新整理問題

 $.mobile.changePage("03.php"); //手機網頁式跳轉 轉跳後,網頁CSS,JS事件都沒有反應,要重新整理一次網頁行有用 $.mobile.changePage這種方式,

react-native最新的ES6基於頁面

引導頁面:最新的react-native頁面跳轉和傳值 /** * Sample React Native App * https://github.com/facebook/react-native */ import React, { Ap

swift UI專項訓練42 用Swift程式碼實現頁面

   之前我們做過如果要點選一個按鈕實現跳轉到另一個按鈕的辦法,有時候我們需要通過一些動作來觸發頁面的跳轉,比如搖動手機,這樣就不能直接用連線的辦法來實現跳轉了,那麼如何通過程式碼的方式來實現跳轉呢?依舊使用過渡的方法,在storyboard中把要實現跳轉的兩張頁面連線,注

小程式遇見的坑之tabBar不onShow介面重新整理

    最近在寫一個小程式的小專案,遇見的坑拿出來給大家進行分享一下。下面僅屬個人觀點,不喜勿噴!!!1.    跳轉頁面 坑wx.navigateTo和wx.redirectTo 不進行跳轉 t

頁面值,兩個頁面cookie值。

頁面之間傳值,cookie解決。很簡單很實用。 function wxShowAffirmWT(wtid){ document.cookie = "workTid="+workTid;//增加值對到

iOS開發-兩個APP之間

兩個APP之間的跳轉是通過[[UIApplication sharedApplication] openURL:url]這種方式來實現的。 1.首先設定第一個APP的url地址 2.接著設定第二個APP的url地址 3.需要跳轉的時候 NSString

UI頁面

一、頁面跳轉: 利用navigation實現跳轉和利用模態跳轉的區別: navigation實現跳轉,始終在同一視窗,由導航欄來管理不同的viewController的載入和退出,因此導航欄始終在。 模態實現跳轉,是新建一個視窗,如果需要新的視窗也具有導航

倒計時頁面jsp 中如何使頁面停留幾秒後再轉向其他頁面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E

js頁面值的常用方法

在前端開發中我們常常需要從一個跳到另一個頁面,並且將當前頁面的資料傳遞過去,我常用下面兩種方法 1、在url路徑後面帶引數,引數與url之間用?隔開,引數與引數之間用&符隔開 window.location.href = "a.html?name='kevin'&

兩個頁面 url中文 非法字元及亂碼

弄了兩個小時終於解決了!!! 問題:在一頁面的url傳中文,從一頁面跳轉到二頁面,在二頁面中得到url中的中文亂碼! 解決辦法:在一頁面的url用encodeURIComponent轉兩次碼(解決非法字元和中文亂碼),                          

【Android基礎】頁面值(Activity值)

一個Android應用程式很少會只有一個Activity物件,如何在多個Activity之間進行跳轉,而且能夠互相傳值是一個很基本的要求。 本次我們就講一下,Android中頁面跳轉以及傳值的幾種方式! Activity跳轉與傳值,主要是通過Intent類來連線多個A