概述
与普通小程序的开发不同,第三方平台小程序的开发具有一定程度的复杂性。首先,需要确认三个概念
由于上述差异,与第三方平台相关的小程序的开发需要进行特殊处理
开发工具的最新版本支持第三方平台小程序的开发和预览。
创建项目
与共同开发小程序一致,第三方平台开发人员填写相关的3rdMiniProgramAppid,设置项目名称并选择项目目录以创建项目。
对于第三方平台小程序,您可以在项目页面中查看相关的open3rd信息和当前的第三方3rdMiniProgramAppid。如果项目配置有相关的extAppid,则项目页面也将具有相关的信息。
小程序模板开发
与通用小程序的开发一致,在开发人员在开发工具上开发了相关的业务逻辑之后,在项目页卡中提交预览,然后您可以在微信中查看小程序的实际性能,
区别在于,第三方平台小程序的提交和上传被上传到第三方平台开放帐户下的模板草稿箱。平台的管理员需要相应地设置模板。有关更多信息,请参阅开放平台文档。
extAppid的开发和调试
为了便于第三方平台开发人员进行extAppid的开发和调试,需要引入ext.json的概念。
ext.json是一个配置文件,位于小程序项目的根目录中。
以下是包含所有配置选项的ext.json:
{ "extEnable": true, "extAppid": "wxf9c4501a76931b33", "ext": { "name": "wechat", "attr": { "host": "open.weixin.qq.com", "users": [ "user_1", "user_2" ] } }, "extPages": { "pages/logs/logs": { "navigationBarTitleText": "logs" } }, "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "Demo", "navigationBarTextStyle":"black" }, "tabBar": { "list": [{ "pagePath": "pages/index/index", "text": "首页" }, { "pagePath": "pages/logs/logs", "text": "日志" }] }, "networkTimeout": { "request": 10000, "downloadFile": 10000 }}
ext.json中的配置字段分为两种类型
唯一字段属性类型的必需说明
extEnable
布尔值
是
ext.json的配置有效吗?
extAppid
字符串
是
配置extAppid
ext
对象
否
开发自定义数据字段
extPages
字符串数组
否
分别设置每个页面的json
extEnable
extEnable是一个布尔类型字段,用于指定当前ext.json文件是否有效。开发人员可以修改该字段以打开和关闭extAppid的联合开发。
extAppid
extAppid是被授权调试的AppID。例如,开发人员在此处填写wxf9c4501a76931b33,因此,如果extEnable为true,则后续的开发逻辑将基于wxf9c4501a76931b33运行。
ext
ext字段是开发的自定义数据字段。在小程序中,您可以通过或wx.getExtConfig获取配置信息。
例如,在上面的示例中,可以通过wx.getExtConfigSync获得ext字段的所有配置
{ "name": "wechat", "attr": { "host": "open.weixin.qq.com", "users": [ "user_1", "user_2" ] }}
extPages
extPages是一个对象,该对象中的每个键应该是小程序模板app.json中定义的页面,并且每个键对应的值是page.json中指定的配置。
开发人员设置此配置后,小程序框架将相应地修改相应页面的配置信息。
与app.json相同的字段
当ext.json中的字段与app.json中的字段相同时,ext.json中的字段将覆盖app.json中的相应字段,例如以下ext.json
{ ········ "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "ext navigationBarTitleText", "navigationBarTextStyle":"black" }}
然后,小程序最终的navigationBarTitleText应该是ext navigationBarTitleText。