接收元数据
wshMetaData() 是 reqWshMetaData() 的响应回调。有权限时,WSH 元数据会作为 JSON 字符串返回。
import json
def wshMetaData(self, reqId: int, dataJson: str): """接收 WSH 元数据 JSON。""" payload = json.loads(dataJson) print("请求编号:", reqId) print("顶层字段:", payload.keys())| 字段 | 类型 | 中文意思 |
|---|---|---|
reqId | 整数 | 对应 reqWshMetaData(reqId) 的请求编号。 |
dataJson | 字符串 | WSH 元数据 JSON。 |
不要用字符串切割解析 dataJson。WSH 字段较多,而且服务端字段可能扩展,使用 json.loads() 更稳。
没有 WSH 权限时,程序可能不会进入 wshMetaData(),而是进入 error():
META_ROWS=0ERROR=reqId=98701;code=10276;msg=不允许新闻推送。所以业务代码必须同时写好两条路径:
| 路径 | 处理 |
|---|---|
收到 wshMetaData() | 解析并缓存元数据。 |
收到 error() 且 code=10276 | 展示权限说明,停止 WSH 事件请求。 |
如果只等待 wshMetaData(),用户没有权限时界面会一直像在加载。