APICloud 入门教程窗口篇

简介: 什么是窗口,窗口可以理解为一屏幕内容的一个基本载体,里面可以放导航,图片,视频,文字等组成一屏幕内容。

什么是窗口,窗口可以理解为一屏幕内容的一个基本载体,里面可以放导航,图片,视频,文字等组成一屏幕内容。

不同的窗口组成一个APP, 例如购物APP有【首页】,【购物车】,【我的】等不同的窗口。不同的窗口之间可以进行跳转。

api.openWin  打开一个window窗口。window窗口是全屏的,不可设置大小。

api.openFrame  打开一个frame窗口。frame 窗口可以设置大小。

openWin示例代码:

api.openWin({
                name: 'firstpage',          //窗口名称,自定义,和页面名称可不一致
                url:'html/firstpage.html'   //页面地址url
            })

firstpage.html 页面代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: blue;
        }

        p {
            color: #fff;
            font-size: 20px;
            margin-top: 60px;
        }
    </style>
</head>

<body>
    <p>首页  firstpage</p>
    <script>
        apiready = function () {
            api.openFrame({
                name: 'back',
                url: 'back.html',
                rect: {
                    marginLeft: 0,
                    marginTop: 0,     //相对父页面上外边距的距离,数字类型
                    h: 50
                },
                pageParam: {
                    name: 'test'
                }
            });
        }
    </script>
</body>

</html>

 openFrame 示例代码:

api.openFrame({
                name: 'back',
                url: 'back.html',
                rect: {
                    marginLeft: 0,
                    marginTop: 0,     //相对父页面上外边距的距离,数字类型
                    h: 50
                },
                pageParam: {
                    name: 'test'
                }
            });

下面举一个例子,用window+frame 组合实现一个首页加一个返回按钮。如下图,“返回” 所在的back.html 是用openFrame 打开的一个frame窗口。下面蓝色全屏页面(fistpage.html)是openWin 打开的一个window窗口。

image.png

项目目录示例图:
image.png

有了基础的 openWin 和 openFrame ,我们就可以灵活运用,组合出多种多样的布局,满足实际的项目需求。

openWin 和 openFrame 各有30多个参数,这里不一一细讲了,具体可到官方文档查看学习。

https://docs.apicloud.com/Client-API/api#33

下面讲解高级布局窗口 tabLayout

api.openTabLayout
打开tabLayout布局

本方法继承了openWin方法的所有参数,同时在此基础上增加了navigationBar、tabBar等参数,来设置和使用原生的顶部导航栏和底部标签栏,可以通过closeWin方法来关闭页面。

如果在首页需要使用tabLayout,可以将相关参数配置在JSON文件中,再在config.xml中将content的值设置成该JSON文件的路径,例如:

// 创建一个app.json文件,放置在widget目录下
{
  "name": "root",
  "tabBar": {
    "frames": [{
      "title": "页面一",
      "name": "page1",
      "url": "widget://html/page1.html"
    }, {
      "title": "页面二",
      "name": "page2",
      "url": "widget://html/page2.html"
    }, {
      "title": "页面三",
      "name": "page3",
      "url": "widget://html/page3.html"
    }],
    "list": [{
      "text": "页面一",
      "iconPath": "widget://image/tab_1.png",
      "selectedIconPath": "widget://image/tab_1_hov.png"
    }, {
      "text": "页面二",
      "iconPath": "widget://image/tab_2.png",
      "selectedIconPath": "widget://image/tab_2_hov.png"
    }, {
      "text": "页面三",
      "iconPath": "widget://image/tab_3.png",
      "selectedIconPath": "widget://image/tab_3_hov.png"
    }]
  }
}

config.xml中将content的值设置成该JSON文件的路径:
image.png

实现一个示例效果如下 :
image.png

高级窗口的优势 ,代码量较少,可灵活配置顶部或底部按钮。

高级窗口需要了解的事件:

tabitembtn
监听tabLayout中tabBar项的点击事件。默认点击每一项时会切换到对应的页面,如果监听了此事件则页面不会自动切换过去,可以通过setTabBarAttr设置选中项

callback(ret, err)
ret:

描述:tabBar项点击事件的回调
内部字段:

{
     index:        //点击的项的索引,从0开始,数字类型
}

示例代码

api.addEventListener({
    name:'tabitembtn'
},function(ret, err){
    var index = ret.index + 1;
    alert('点击了第'+index+'项');
});

可参看官方出的TabLayout示例代码和官方文档进行学习。下面是链接。

https://developer.yonyou.com/thread-123685-1-1.html

https://docs.apicloud.com/Client-API/api#openTabLayout

目录
相关文章
|
定位技术 开发者
uni-app获取地理位置
uni-app获取地理位置
1980 0
|
4月前
|
人工智能 JavaScript 数据可视化
保姆级教程:OpenClaw(Clawdbot)阿里云及Windows本地部署方案,与本地Ollama配置指南
在AI智能体快速普及的2026年,OpenClaw(前身为Clawdbot)凭借开源免费、可自托管、系统级权限控制的核心优势,成为个人与轻量团队打造专属AI助手的首选工具,其GitHub星标已飙升至18万+,登顶多个开源榜单。Ollama作为目前最受开发者欢迎的本地大模型运行工具,GitHub星标突破16万,支持480+开源模型一键部署,二者组合可实现“本地推理+本地执行”的全闭环,彻底摆脱对云端大模型的依赖,确保数据隐私安全且无网络依赖。
4349 2
|
1月前
|
IDE Java 开发工具
【2026最新】Eclipse下载安装使用保姆级教程(附安装包+图文步骤)
Eclipse是免费开源的跨平台IDE,原生支持Java开发,通过插件可扩展至C/C++、Python、Web前端等。其轻量插件架构、丰富生态及二十多年企业级应用积累,使其成为Java开发的重要工具之一。(239字)
|
Web App开发 前端开发
【前端异常】Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
【前端异常】Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
2801 0
|
前端开发 JavaScript API
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格
在 Vue 中,表格组件是使用频率及复杂度排名第一的组件,前端经常需要根据后台返回的数据动态渲染表格,比如动态表格如何生成,因为表格的列并不是固定的,在未知表格具体有哪些列的场景下,前端如何动态渲染表格数据。又或者需要把表格单元格进行合并处理,比如第一列是日期,需要把相同的日期进行合并,这样表格看起来会更加清晰。 本文手把手教你如何在 Vue3 + Element Plus 中创建表格、生成动态表格、创建动态多级表头、表格行合并、列合并等问题。如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云 ,卡拉云是新一代低代码开发工具,可一键接入常见数据库及 API ,无需懂前端,仅需拖拽即
3863 0
|
12月前
|
传感器 API 开发工具
【HarmonyOS 5】鸿蒙应用代码控制横竖屏切换,自动切换横竖屏,监听横竖屏以及注意事项
注意: auto_rotation随传感器旋转 需要在系统下滑菜单中,放开自动锁定状态才可生效。
800 0
|
小程序 API
微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb
微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb
476 0
|
并行计算 异构计算
卸载原有的cuda,更新cuda
本文提供了一个更新CUDA版本的详细指南,包括如何查看当前CUDA版本、检查可安装的CUDA版本、卸载旧版本CUDA以及安装新版本的CUDA。
17297 3
卸载原有的cuda,更新cuda

热门文章

最新文章