首页 > 编程语言 >原生小程序开发——功能页开发指南

原生小程序开发——功能页开发指南

时间:2024-04-01 11:02:37浏览次数:21  
标签:原生 指南 功能 index app 程序开发 程序 源码 页面

功能页

表示一类特定的功能界面,如:登录页、注册页、忘记密码页、支付页等。此类页面的特点的功能单一、流程完整,可独立访问,具有明确的业务入口与出口。

功能页与普通的页面相同,通过框架函数 Page() 注册。功能页经发布后可在其他小程序内打开。实现应用页面共享、复用的能力。

应用案例:

  • A 小程序 - 存在注册页、登录页、忘记密码页等需求。
  • B 小程序 - 存在注册页、登录页、忘记密码页等需求。

可将 A 小程序的注册页、登录页、忘记密码页等以功能页模式开发。自身引用且可提供给 B 小程序引入使用,实现共享页面的能力,以及后续其他小程序也有此业务需求,也可引入使用。

 

术语

宿主小程序

表示主体小程序应用,可导入其他功能页小程序进行使用。源码路径为 miniprogramRoot

功能页小程序

表示可被导入到宿主小程序内的小程序。源码路径为 funtionalRoot

 

功能页开发

功能页源码有独立的目录,其源码内部不可引用(miniprogramRoot widgetRoot)目录内的文件,包括 js、tyml、tyss、图片等。

工程配置

功能页源码通过 funtionalRoot 字段在 project.tuya.json 内进行声明。

{
  projectname: 'functional-demo',
  i18n: true,
  miniprogramRoot: 'app/', // 小程序源码
  functionalRoot: 'app-func/', // 功能页源码目录
  projectId: 'your_project_id',
  baseversion: '2.12.0',
  dependencies: {
    // ...
  },
}

一个完整的功能页工程目录结构如下:

app/ # 主小程序源码
app-func/ # 功能页小程序源码
├── functional.json  # 功能页配置文件
├── functional.tyss # 功能页全局样式
├── theme.json # 功能页主题配置,如有
├── assets/
│   └── logo.png  # 功能页内的资源
└── pages/         # 功能页内的页面
    └── settings/
        ├── index.js
        ├── index.json
        ├── index.tyml
        └── index.tyss

注意事项

  • 与小程序的差别是不存在 app.js 等逻辑,同时在逻辑代码中调用 getApp() 也无法访问到宿主小程序的信息。只是返回当前运行环境共享的一个对象。
  • 同时 getCurrentPages() 返回的页面队列,只可访问功能页页面实例,其他宿主小程序的页面,只可访问对应路由信息。

功能页配置 functional.json

用于描述当前功能页小程序的信息。

配置字段
字段类型必填说明
pagesArray功能页内的页面列表,与小程序的 app.json 一致。 申明当前功能页包含的页面地址,可以有多个,至少存在一个。
publicPagesObject只有发布的页面才可被宿主小程序访问,访问路由为: functional://{name}/{pageName} 一经发布的页面,页面名不可更改,否则会造成宿主小程序访问到错误路由的问题,应在发布前确定好发布的页面名。并发布到功能页小程序文档中,提供给引入方查阅。
themeLocationstring参考 app.json
usingComponentsObject参考 app.json
dependenciesObject参考 project.tuya.json
darkmodeboolean是否支持暗黑模式, 默认 true
themeLocationstring主题配置文件相对路径

配置示例:

{
  pages: [
    'pages/settings/index', // 功能设置页
    'pages/detail/index', //  功能详情页
  ],
  publicPages: {
    settings: 'pages/settings/index', // 发布 settings 页面
  },
  dependencies: {
    // 环境要求, 提示宿主小程序的环境要求
    MiniKit: '3.0.0',
  },
  darkmode: true,
  themeLocation: '../app/theme.json',
}

功能页开发调试

1. app.json 文件中声明依赖的功能页

宿主小程序中 app.json 中通过 functionalPages 字段导入功能页小程序。使用 key-value 的形式,key 为功能页的插件名,value 为功能页的配置信息。

{
  pages: ['pages/index/index'],
  functionalPages: {
    my_func: {
      appid: 'ty-xxxxxx',
    },
  },
}

其中 appid 为小程序 ID。

与当前小程序的 projectId (project.tuya.jons) 中一致时,则表示引用自身的功能页。

 

2. 跳转到功能页页面

使用路由 API 跳转, 仅支持 ty.navigateTo ty.redirectTo ty.reLaunch 三个方法

格式为 functional://{功能页插件名}/{对外暴露的页面名} 支持 query 参数

<navigator url="functional://my_func/settings" open-type="navigate">
  跳转到功能页
</navigator>
ty.navigateTo({
  url: 'functional://my_func/settings',
});

3. 跨页面事件通信

支持 eventChannel 通信模式。

需要功能页开发时提前预留特定的事件名,供宿主小程序调用。

 

功能页开发注意事项

  1. 不受 app.tyss 样式影响,功能页内聚自身样式。
  2. light / dark 开发模式,有自己的变量作用域。
  3. getApp, getCurrentPages 接口的返回只可访问自身空间数据。
  4. 功能页小程序多语言不可访问宿主小程序的多语言信息。

标签:原生,指南,功能,index,app,程序开发,程序,源码,页面
From: https://blog.csdn.net/Ms_Smart/article/details/137045298

相关文章

  • Postfix + Dovecot IMAP 服务器的终极指南,完整支持 SPF、DKIM 和 DMARC,以及多域名设
    邮件服务器配置指南本指南将带您完成Postfix+DovecotIMAP服务器的设置,支持SPF、DKIM和DMARC,还将提供多域名配置的额外指导。在本指南中,domain.com将作为您的根域名,mail.domain.com将作为您邮件服务器的主机名。0x01添加DNS记录在您的域名下添加如下DNS记录:mailI......
  • Druid监控踩坑指南
    概述最近项目组在准备接入各种指标监控系统,笔者负责的部分刚好涉及到了Druid,故记录一下在过程中遇到的各种情况和坑。1.直接使用Druid直接使用Druid的监控功能,需要直接将它提供的Servlet配置到Web容器中。具体可以直接参照官方文档。配置信息采集:https://github.com......
  • AI绘画:利用ComfyUI进行文生图操作的完整指南
    前言ComfyUI作为一款基于StableDiffusion的节点式操作界面,为用户提供了一个更加灵活和高效的文生图(文本生成图像)创作环境。本篇博客将详细介绍如何使用ComfyUI进行文生图操作,无论你是初学者还是有一定基础的用户,都能够通过本指南快速上手。书接上文,香型大家已经完成了Stabll......
  • IDEPG001编程指南
    NCUK国际一年工程IDEPG001编程课程课业2023-2024课程课业每个元件的标记都在所附的标记中清楚地标明计划此课业占该科目总分的70%。编程编程V12324©NCUK有限公司2023第2页,共8页简报作为气候变化项目的一部分,东北部达勒姆市附近的一个自然保护区英格兰需要一个记录和分析降雨数......
  • 打造DiTing聊天室之从零开始:准备工作指南
    前言Hello,我是单木。接下来我将会开启一个新的博客系列,使用GoLang从0到1实现一个IM聊天室项目。为什么要做这个项目说实话,作为一个Javer,我对于Go的了解也还仅限于前两天时间刚刚突击的基本语法,但是没办法,我即将实习的公司采用Go作为技术栈,我只能开始转战Go的旅程。......
  • 【NodeMcu-ESP8266】引脚使用参考指南——推荐收藏
    目录概述     一、ESP826612—E/F模组引脚图二、ESP826612-E/FNodeMCU引脚图三、ESP8266coreforArduino源码关于NodeMCU引脚设置的定义四、ESP8266-NodeMCU引脚特性及使用建议五、需要特别提醒和强调的几个具体问题参考文档概述         ......
  • 洛谷题单指南-图的基本应用-P2853 [USACO06DEC] Cow Picnic S
    原题链接:https://www.luogu.com.cn/problem/P2853题意解读:找到所有奶牛都可以到达的牧场,就是要从奶牛所在位置开始遍历,求所有奶牛能重合的点的个数。解题思路:直接从从牛奶所在位置进行DFS,记录每个位置有奶牛能到的个数,个数等于奶牛总数的即合适的牧场。100分代码:#include<bi......
  • 洛谷题单指南-图的基本应用-P1127 词链
    原题链接:https://www.luogu.com.cn/problem/P1127题意解读:按字典序排列单词,使得相邻单词的首位字母一样。解题思路:由于单词之间可以相邻的条件是前一个单词的末尾字母和后一个单词的开头字母一样,因此可以遍历每一个单词,再找到每一个可以接在其后面的单词,建立一个邻接表,然后从......
  • 数据资产目录建设指南
    一、数据资产目录的构成作为数字化时代的关键基础设施,数据资产目录的构成需要全面地体现企业数据资产的内涵和外延。一个高质量的数据资产目录应当包含以下几个核心组成部分:1.1数据资产清单数据资产清单是数据资产目录的基石,全面准确地列出了组织内的所有数据资产。......
  • 深入探讨Docker in Docker:原理与实战指南
    在软件开发和部署中,容器化技术已经成为一个不可或缺的工具。而在使用Docker进行容器化时,有时可能会遇到需要在一个Docker容器中运行另一个Docker容器的情况,这就是所谓的"DockerinDocker"(简称DinD)。本文将深入探讨DockerinDocker的原理和实战指南,帮助读者更好地理解和应......