apiCloud如何打开新页面的同时,关掉当前页

简介:

方法很多,只要不同时open、close都可行。给你一个简单的方式:

     api.addEventListener({
         name:'viewdisappear'
     },function(){
         api.closeWin({
              name:api.winName
         });
     });

谢谢官方提供的方案,棒棒的!

使用场景,选择好友加入群组!
群生成之后,关闭选择页面!

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
    <title>title</title>
    <link rel="stylesheet" type="text/css" href="api.css"/>
    <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css"/>
    <style>
        body{

        }
    </style>
</head>
<body style="background: #eae6e6;">
<header class="aui-bar aui-bar-nav aui-margin-b-15" id="aui-header">
    <a class="aui-pull-left aui-btn" tapmode onclick="closeWin()">
        <span class="aui-iconfont aui-icon-left"></span>取消
    </a>
    <div class="aui-title">选择朋友</div>
    <a class="aui-pull-right aui-btn">
        <span class="aui-iconfont" style="color:#3F8A2C;" onclick="confirmChooseEvent();">确定</span>
    </a>
</header>
</body>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/config.js"></script>
<script type="text/javascript" src="../script/jquery.min.js"></script>
<script type="text/javascript" src="../script/message_common.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript">
    apiready = function () {
        fix_status_bar();
        var header_height = $api.dom("header").offsetHeight;

        api.openFrame({
            name: 'message_choose_friends_frm',
            url: 'message_choose_friends_frm.html',
            rect: {
                x: 0,
                y: header_height,
                w:'auto',           //宽度,若传'auto',页面从x位置开始自动充满父页面宽度
                h:api.winHeight - header_height            //高度,若传'auto',页面从y位置开始自动充满父页面高度
            },
            bgColor:'rgba(0,0,0,0)',
            bounces:false,
            vScrollBarEnabled:false,
            hScrollBarEnabled:false
        });

        // 监听页面消失的时候,关掉页面就可以了
        api.addEventListener({
            name:'viewdisappear'
        },function(){
            api.closeWin();
        });

    }
    
    function confirmChooseEvent() {
        api.sendEvent({
            name: 'confirmChooseEvent',
            extra: {
            }
        });
    }

</script>
</html>

frm页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0">
    <title>选择朋友</title>
    <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css"/>
    <link rel="stylesheet" href="../css/message_style.css">
    <style>
        .s_mapul {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            max-height: 350px;
            overflow: scroll;
            background: #fff;
            overflow-y: auto;
        }

        .s_mapul li {
            border-bottom: 1px solid #ededed;
            padding: 0.3rem 5%;
            position: relative;
        }

        .s_mapul li h2 {
            font-size: 0.8rem;
        }

        .s_mapul li h2 img {
            position: absolute;
            right: 5%;
            height: 1rem;
        }

        .s_mapul li p {
            font-size: 0.6rem;
            color: #b0b0b0;
            margin-top: 0.2rem;
        }
    </style>
</head>
<body>

<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript" src="../script/message_common.js"></script>
<script type="text/javascript" src="../script/config.js"></script>
<script type="text/javascript" src="../script/doT.min.js"></script>
<script type="text/javascript" src="../script/jquery.min.js"></script>
<script type="text/javascript" src="../script/convertPinyin.js"></script>
<script>
    var user;
    var UIListCheck;
    apiready = function () {
        fix_status_bar();
        user = $api.getStorage('user');

        // 监听页面关闭
        api.addEventListener({
            name: 'confirmChooseEvent'
        }, function (ret, err) {
            getSelectedSync();
        });

        api.ajax({
            url: BASE_URL_ACTION+'/RongCloud/GetFriends',
            method: 'post',
            data: {
                values: {
                    customerId: user.person_id,
                }
            }
        }, function (json, err) {
            if (json.result) {
                dealFriendsData(json.info,function(contacts) {
                    UIListCheck = api.require('UIListCheck');
                    UIListCheck.open({
                        rect: {
                            x: 0,
                            y: 22,
                            w: api.frameWidth,
                            h: api.frameHeight - 22
                        },
                        contacts: contacts,
                        fixedOn: 'message_choose_friends_frm'
                    }, function (ret) {
                        if (ret) {
                        }
                    });
                });
            } else {
                toast('获取好友数据失败');
            }
        });



    }

    function dealFriendsData(data,callback) {
        var contacts = [];
        for (var i=0;i<data.length;i++) {
            var item = {};
            item.employee_id = data[i].Id;
            item.remark = data[i].NickName;
            item.position = "";
            item.phonetic = convertPinyin(data[i].NickName);
            contacts[i] = item;
        }
        if (typeof callback == 'function') {
            callback(contacts);
        }
    }

    function getSelectedSync() {
        var ret = UIListCheck.getSelectedSync();
        var contacts = ret.contacts;
        if (contacts.length == 0) {
            toast('请选择好友');
            return;
        }

        var values = {
            systemName : 'yunlutong',
            customerId : user.person_id
        }

        for(var i = 0;i<contacts.length;i++) {
            var key='contactIds['+i+']';
            values[key]= contacts[i].employee_id;
        }
        
        api.ajax({
            url : BASE_URL_ACTION+'/RongCloud/AddGroup',
            method : 'post',
            data : {
                values : values
            }
        }, function(json, err) {
            if (json.result) {
                toast('创建成功');

                setTimeout(openChatPage('',json.groupid,0,'群聊','GROUP','index',''),500);

                // 本来想在这里处理的,发现不管用
            } else {
                toast('创建失败');
            }

        });


    }




</script>

</body>

</html>
本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7212227.html,如需转载请自行联系原作者

相关文章
|
5月前
|
存储 前端开发
ajax实现简单的点击左侧菜单,右侧加载不同网页
ajax实现简单的点击左侧菜单,右侧加载不同网页
43 0
|
Web App开发 存储 缓存
【译】点击浏览器的前进后退按钮时,页面的缓存机制
【译】点击浏览器的前进后退按钮时,页面的缓存机制
461 0
【译】点击浏览器的前进后退按钮时,页面的缓存机制
|
测试技术 API
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
104 0
|
小程序 开发者
【mpvue】微信小程序返回到tab页面并刷新页面,在微信开发者工具运行正常,但是真机调试的时候跳转到了tab页面但不会刷新。getCurrentPages()获取的不是当前页面
1、问题描述 在「添加基金页面pages/addfund/main」添加完基金后,点击取消,会需要跳转到「基金页面pages/index/main」并且刷新出刚刚添加的基金 现在的问题是: 在微信开发者工具中操作时:添加完基金后,会跳转到「基金页面pages/index/main」并且刷新出刚刚添加的基金 在真机调试、预览时:在手机上操作添加完基金后,会跳转到「基金页面pages/index/main」但是不会自动刷新出刚刚添加的基金
352 0
【mpvue】微信小程序返回到tab页面并刷新页面,在微信开发者工具运行正常,但是真机调试的时候跳转到了tab页面但不会刷新。getCurrentPages()获取的不是当前页面
|
Web App开发 Java
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
958 0
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
|
iOS开发 索引
iOS开发之TabBar再次点击实现刷新
需求 之前已经实现了自定义TabBar,如图所示: 自定义TabBar.jpeg 现在需要实现一个类似今日头条TabBar的功能 —— 如果继续点击当前TabBar的选中项,那么该界面需要刷新UITableView。
1142 0