收藏
回答

推荐组件的GameIcon接口到底该如何调用

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug 推荐组件,wx.createGameIcon() 微信iOS客户端 7.0.8 2.9.4

有两个问题,第一个是关于创建GameIcon的这个接口wx.createGameIcon,参数列表到底什么意思?这个接口的API文档在这里

https://developers.weixin.qq.com/minigame/dev/api/game-portal/wx.createGameIcon.html

其中写到:


这里有两个地方可以提供styleItem的,到底该用哪个?


我用我能想到的调用方式一一尝试了一遍,在真机上(iOS平台)测试时总是调用失败,错误信息为:

  • gameSDKScriptError {};wx.createGameIcon Error

    e@https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:36655
    value@https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:32222
    https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:16387
    https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:19197
    forEach@[native code]
    https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:19087

我的调用代码为:

if (wx.createGameIcon) {
        let styleItemArray = [...Array(10)].map((_, i) => ({
            appNameHidden: false,
            color: 'white',
            size: 150,
            borderWidth: 1,
            borderColor: 'white',
            left: 100 * i,
            top: 100
        }))
 
        try {
            this.gameIcon = wx.createGameIcon({
                adUnitId: 'PBgAA3Z_WGRX3-3A',
                count: 10,
                style: styleItemArray
            }, styleItemArray[0])
        } catch (error) {
            console.warn(error)
        }
    }


请各位大神帮忙看看!

回答关注问题邀请回答
收藏

3 个回答

  • 袁梓民
    袁梓民
    2019-12-10

    文档应该是有误的:

    GameIcon wx.createGameIcon(Object object, Object styleItem),这里不需要后面的styleItem 但是我用你的代码试了下,并不会出现报错,请问是什么机型?什么基础库,是否忘了勾选ES6转ES5且在iPhone 6之类的设备上调试的。

    2019-12-10
    有用 1
    回复 4
    • 焦航
      焦航
      2019-12-11
      想追问一个问题:gameIcon如何动态的修改其位置信息?从官方文档给的接口来看,貌似只有在createIcon的时候设置位置信息,然后就固定了。但是我看到很多小游戏里实现了推荐图标自动滚动的效果。并且GameIcon对象也有onResize方法,请问GameIcon的onResize方法的触发逻辑是怎样的?另外,官方文档中没有列出onResize注册的回调函数的具体参数列表,不知道怎么写这个回调函数。能否帮忙看一下,多谢!
      2019-12-11
      回复
    • 焦航
      焦航
      2019-12-11
      2019-12-11
      回复
    • 袁梓民
      袁梓民
      2019-12-11回复焦航
      onResize会拿到一个list,对每一项可以直接操作他的位置,就可设置的时候一样:
      list[0].left = xxx;
      2019-12-11
      1
      回复
    • 焦航
      焦航
      2019-12-11回复袁梓民
      好的,多谢!
      2019-12-11
      回复
  • ankye大华
    ankye大华
    2020-07-27

    let iconAd = Laya.Browser.window.wx.createGameIcon({ adUnitId: 'xxxxxx',count:1,style:[{appNameHidden:true,left:x/r,top:y/r,size:20}]});

    文档有错误,这么久了也不改一下

    2020-07-27
    有用
    回复
  • 焦航
    焦航
    2019-12-11

    我找到原因了,在微信小游戏开发工具中调试的时候发现了如下错误日志:


    说是count不能大于9. 我把count修改为9之后就可以正常展示了。

    不过,这条错误信息只有在开发工具中才会提示,在真机上没有这条提示,所以一开始我搞不懂是为什么出错的。

    谢谢官方大大。

    2019-12-11
    有用
    回复 1
    • Cc、
      Cc、
      2020-02-11
      老哥 这个按你的代码显示的是 九宫格的啊  怎么做成 滚动横屏的那种呢,
      2020-02-11
      回复
登录 后发表内容
问题标签