- Creator 版本:2.0.2
我的子程序中,使用了 wx.getStorage 或是 wx.getStorageSync 来获取数据,在微信开发者工具中进行测试,会报错。
报错内容为:TypeError:wx.getStorageSync is not a function
所以我想询问下,子程序是不是不能调用这两个方法?
我的子程序中,使用了 wx.getStorage 或是 wx.getStorageSync 来获取数据,在微信开发者工具中进行测试,会报错。
报错内容为:TypeError:wx.getStorageSync is not a function
所以我想询问下,子程序是不是不能调用这两个方法?
不可 从主域传你要的数据过去 子域接受数据即可。
你好。感谢回复。
我这边主程序使用了 wx.setStorage 进行数据存储,如 历史最高分 ,这个数值跟 排行榜的玩家分数 是一致的。
然后有这么一个问题:玩家游戏一段时间后,删除小游戏,则 历史最高分 也会被删除。
在玩家重新玩我的小游戏的时候,此时由于之前的删除,历史最高分 与 排行榜的玩家分数 将不一致。
我原本是设想通过:子程序获得排行榜分数 --> 子程序通过wx.setStorage写入本地缓存 --> 主程序通过wx.getStorage获取本地缓存 --> 刷新历史最高分的数据
现在这个方法不能实现。


请问有什么好办法吗?
https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html
数据托管到微信后台
wx.setUserCloudStorage
你好。感谢回复。
wx.setUserCloudStorage 这个方法,主程序可以对数据进行写入,但是主程序无法通过 wx.getUserCloudStorage 获取数据。
我可以通过子程序获取该数据,但是我无法将数据从子程序传递给主程序。
也无法通过子程序操作第三方数据(也就是上方提到的子程序使用 wx.setStorage 方法),来让主程序从第三方位置(wx.getStorage)获取该数据。
8L的方法不可用 set完你也无法在主域get到托管数据。如果你的成绩无法通过服务器存取,那就没有办法了。主域有什么地方要用到历史最高分么?
要显示最高分的地方都用子域去显示
游戏中有个设定是玩家最高分达到多少时,可以获得奖励。此时主程序是需要最高分的。
你好,感谢回复。
游戏中有个设定是玩家最高分达到多少时,可以获得奖励。此时主程序是需要最高分的。
用户获得的奖励也是存取本地的吧 如果用户数据没了 那他的奖励也都没了。或者你可以考虑使用微信的云开发来保存用户的分数。虽然难用了一点,但毕竟是免费的。
那就主域用 wx.getStorage
子域用wx.getUserCloudStorage
两边都保存呗。反正子域只是显示而已
所以当玩家删除小游戏后再次进入小游戏就会有两个分数不一致的问题。
没有用过。我看看。谢谢。
怎么会分数不一致呢,每次以主域的为准进行更新。
就是删除小游戏后之前的数据没有了而已。
如果数据要长久保存,搞个服务端吧。
基本没有办法,需要自己搞个服务器,而且其实对于如果服务器都没有的小游戏来说,删掉重装这种情景基本可以忽略,不一致就不一致吧。如果仅仅为了这个加个服务器,其实不是很值得。


决定了:如果玩家删除了小游戏,再重新进入小游戏时,主程序检测到没有该数据,就用 wx.removeUserCloudStorage(Object object) 把排行榜的数据也一块删除掉好了。
这样就不会有不一致的问题了!


如果玩家删除了小游戏,再重新进入小游戏时,主程序检测到没有该数据,就用 wx.removeUserCloudStorage(Object object) 把排行榜的数据也一块删除掉。