收藏
回答

【minium】app.evaluate执行报错Unexpected token怎么解决?

在调用minium.app.evaluate()方法时,代码如下:

import minium
mini = minium.Minium({
    "project_path": "*****",
    "dev_tool_path": "*****",
    "debug_mode": "debug",
    "auto_authorize": True
})
app = mini.app
result = app.evaluate("""function(){wx.preloadAssets({
  data: [
    {
      type: 'image',
      src:'https://news.buaa.edu.cn/dfiles/12596/images/logo.png',
    },
  ],
  success(resp) {
    console.log('preloadAssets success', resp)
  },
  fail(err) {
    console.log('preloadAssets fail', err)
  },
})}""", sync=True)

上述代码运行时报错。

报错位置:result = app.evaluate(""" 这一行

报错信息:minium.framework.exception.MiniAppError: Unexpected token (8:9)

运行环境:minium 1.3.0, 调试基础库 2.29.1, 微信开发者工具 1.06.2301040 win32-x64

我尝试过:

  1. 更改evaluate中的参数:即执行app.evalute(“function(){return wx.env}”, sync=True),发现可以正常运行;
  2. 将evaluate中的app_function参数粘入console pannel运行:发现可以正常运行
  3. 更改调试环境:这一问题在IDE运行和真机调试(微信版本8.0.28, 基础库版本2.27.3, Android12)中都会出现

请问是什么原因?

最后一次编辑于  2023-02-03
回答关注问题邀请回答
收藏

1 个回答

  • Leepay
    Leepay
    2023-02-03

    解决了,evaluate似乎不支持传入函数参数的json的简便化,把回调函数写完整就可以正常运行:

    app.evaluate("""function(){wx.preloadAssets({
      data: [
        {
          type: 'image',
          src:'https://news.buaa.edu.cn/dfiles/12596/images/logo.png',
        },
      ],
      success: function(resp) {
        console.log('preloadAssets success', resp)
      },
      fail: function(err) {
        console.log('preloadAssets fail', err)
      },
    })}""", sync=True)
    
    2023-02-03
    有用 1
    回复
登录 后发表内容