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,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 缓存 前端开发
前端谷歌浏览器面版属性
【8月更文挑战第19天】前端谷歌浏览器面版属性
42 0
|
JavaScript
从新窗口打开路由页面(Vue),可携带参数,新开一个窗口打开页面
从新窗口打开路由页面(Vue),可携带参数,新开一个窗口打开页面
122 0
|
Web App开发 存储 缓存
【译】点击浏览器的前进后退按钮时,页面的缓存机制
【译】点击浏览器的前进后退按钮时,页面的缓存机制
563 0
【译】点击浏览器的前进后退按钮时,页面的缓存机制
|
开发者
uniapp中showToast之后延迟跳转页面,解决提示在真机中一闪而过
请求接口需要调用 uni.showLoading(),接口请求结束调用 uni.hideLoading(),满足需求条件后调用 uni.showToast()给用户提示信息,在开发者上正常,但是在真机上会出现提示信息一闪而过。
1397 0
|
测试技术 API
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
135 0
|
小程序 开发者
【mpvue】微信小程序返回到tab页面并刷新页面,在微信开发者工具运行正常,但是真机调试的时候跳转到了tab页面但不会刷新。getCurrentPages()获取的不是当前页面
1、问题描述 在「添加基金页面pages/addfund/main」添加完基金后,点击取消,会需要跳转到「基金页面pages/index/main」并且刷新出刚刚添加的基金 现在的问题是: 在微信开发者工具中操作时:添加完基金后,会跳转到「基金页面pages/index/main」并且刷新出刚刚添加的基金 在真机调试、预览时:在手机上操作添加完基金后,会跳转到「基金页面pages/index/main」但是不会自动刷新出刚刚添加的基金
445 0
【mpvue】微信小程序返回到tab页面并刷新页面,在微信开发者工具运行正常,但是真机调试的时候跳转到了tab页面但不会刷新。getCurrentPages()获取的不是当前页面
|
移动开发 Android开发 iOS开发
H5跳转ReactNative打开指定页面
H5跳转ReactNative打开指定页面
450 0
H5跳转ReactNative打开指定页面
|
Web App开发 Java
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
1134 0
小玩意 - Chrome插件——GreenChrome(双击关闭标签,新窗口打开新地址)
|
Web App开发 JavaScript iOS开发
js控制ios设备在微信打开网页时,自动播放音乐
实际情形: 今天在公司做一个微页的项目,涉及到在微信里面点击链接或者是扫描二维码,打开链接的时候,自动播放音乐。 这个功能是非常简单的,直接在HTML页面插入如下代码即可。
1557 0