【minium】app.call_wx_method()调用时的args参数类型应该是list吧?
在手册中对call_wx_method()的参数介绍(https://minitest.weixin.qq.com/#/minium/Python/api/App?id=call_wx_method)中,args应该是dict。 但是我查看minium源码,在`*\minium\miniprogram\base_driver\minium_object.py`中有: def _call_wx_method(self, method, args=None, plugin_appid=None, sync=True):
if args is None:
args = []
if not isinstance(args, list):
if isinstance(args, str):
# 如果是字符型参数,就可以不用管是否是 sync 方法,直接转数组传参即可
args = [args]
elif "Sync" in method:
# 如果是 sync 方法,则需要从字典里面提取所有的 value 成为一个数组进行传参
if isinstance(args, dict):
temp_args = list()
for key in args.keys():
temp_args.append(args[key])
args = temp_args
else:
# 异步方法的话无需管 args 是str 还是 dict,直接转成 list 即可
args = [args]
params = {"method": method, "args": args}
if plugin_appid:
params["pluginId"] = plugin_appid
if not sync:
return self.connection.send_async("App.callWxMethod", params)
return self.connection.send("App.callWxMethod", params)
发现最终args参数都是以list格式传入connection,而且如果按照手册中的要求传入dict,那异步方法的参数传入connection就成了套着list的dict,比如[{"number":123,"string":"abc"}]。 请问这样minium能正常处理吗?或者如果我一开始传入call_wx_method()的参数就按照list传入可以吗?