概述
小程序运营商可以一键授权到第三方平台,并通过第三方平台完成业务。第三方平台的前端和后端开发不同于直接开发小程序。对于它拥有的各种API和详细说明,请代表小程序参阅业务的实现。其余请阅读以下内容。
第三方平台小程序的开发具有一定程度的复杂性。首先,需要确认三个概念:
与第三方平台相关的小程序开发需要一些特殊待遇:
开发工具的最新版本支持第三方平台小程序的开发和预览。
创建项目
与共同开发小程序一致,第三方平台开发人员填写相关的3rdMiniProgramAppid,设置项目名称并选择项目目录以创建项目。
对于第三方平台小程序,您可以在项目页面中查看相关的open3rd信息和当前的第三方3rdMiniProgramAppid。如果项目配置有相关的extAppid,则项目页面也将具有相关的信息。
小程序模板开发
与通用小程序的开发一致,在开发人员在开发工具上开发了相关的业务逻辑之后,在项目页卡中提交预览,然后可以在微信中查看小程序的实际性能。
区别在于,第三方平台小程序的提交和上传被上传到第三方平台开放帐户下的模板草稿箱。平台的管理员需要相应地设置模板。有关更多信息,请参阅开放平台文档。
extAppid的开发和调试
为了便于第三方平台开发人员进行extAppid的开发和调试,需要引入ext.json的概念。
ext.json是一个配置文件,位于小程序项目的根目录中。
以下是包含所有配置选项的ext.json:
{ "extEnable": true, "extAppid": "wxf9c4501a76931b33", "directCommit": false, "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 }, { "plugins": { "myPlugin": { "version": "1.0.0", "provider": "wxidxxxxxxxxxxxxxxxx" } }}}
补充:有关使用插件的信息,请参阅使用插件。
ext.json中的配置字段分为两种类型
唯一字段
属性类型必需的描述
布尔值
是
ext.json的配置有效吗?
字符串
是
配置extAppid
对象
否
开发自定义数据字段
字符串数组
否
分别设置每个页面的json
布尔值
否
是否直接提交至待审核列表
extEnable
extEnable是一个布尔类型字段,用于指定当前ext.json文件是否有效。开发人员可以修改该字段以启用和禁用extAppid的联合开发。
extAppid
extAppid是被授权调试的AppID。例如,开发人员在此处填写wxf9c4501a76931b33。如果extEnable为true,则将基于wxf9c4501a76931b33运行后续的开发逻辑。
ext
ext字段是通过开发定制的数据字段。在小程序中,您可以通过wx.getExtConfigSync或wx.getExtConfig获取配置信息。
例如,在上面的示例中,可以通过wx.getExtConfigSync获得ext字段的所有配置
{ "name": "wechat", "attr": { "host": "open.weixin.qq.com", "users": [ "user_1", "user_2" ] }}
extPages
extPages是一个对象,该对象中的每个键应为小程序模板app.json中定义的页面,并且每个键对应的值是其中指定的配置。
开发人员设置此配置后,小程序框架将相应地修改相应页面的配置信息。
directCommit
directCommit是一个布尔字段,用于指定当前的上传操作是否直接上传到extAppid审核列表。
当directCommit为true时,该工具中开发人员的上传操作将直接上传到相应的extAppid审阅列表中,并且第三方平台仅需调用它即可提交审阅。有关更多信息,请参阅第三方平台文档
如果directCommit为false或未定义,则该工具中开发人员的上传操作将直接上传到相应的草稿箱。
提示:您可以使用该工具的命令行界面或http界面来实现自动代码提交审核
与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。