跳转到内容

接收元数据

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=0
ERROR=reqId=98701;code=10276;msg=不允许新闻推送。

所以业务代码必须同时写好两条路径:

路径处理
收到 wshMetaData()解析并缓存元数据。
收到 error()code=10276展示权限说明,停止 WSH 事件请求。

如果只等待 wshMetaData(),用户没有权限时界面会一直像在加载。