最近一个月有点忙呵,都没有时间写博客,今天就抽出一点时间记录一下这一个月中我开发过程遇到的问题,顺便记录一下微信小游戏开发过程中遇到的问题.

今天就接着,上面写的发布流程,接着写会面临的问题吧.

更新新版本问题

你的游戏上线后,首先面临的一个问题就是,游戏更新逻辑问题,比如提示玩家更新游戏到最新的游戏版本.这里就直接使用小游戏提供的API.

我这里废话不多说直接给你们参考代码.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
checkNewVersion() {
if (CC_WECHATGAME && typeof wx.getUpdateManager === 'function') {
const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {})

updateManager.onUpdateReady(function ( res ) {
wx.showModal({
title: '更新提示',
content: '新版本来袭,是否重启应用?',
success: function (res) {
if (res.confirm) {
updateManager.applyUpdate()
}
}
})
})

updateManager.onUpdateFailed(function () {})
}
}

这里主要是用到了微信交互控件中的 showModal . 这个函数 直接就是在启动应用的时候直接调用.检测是否有新版本.

微信用户拒绝授权问题

还是直接上代码,说的多,不如自己看明白是怎么回事.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
getUserInfo(func_) {
if(!this.checkIsWeChat()) {return;}
wx.getUserInfo({
withCredentials : false,
success: (res) => {
let userInfo = res.userInfo
// 授权成功

// avatarUrl
// nickName
// gender //性别 0:未知、1:男、2:女
// province 省
// city
// country
},
fail: (res)=>{
// 未授权 处理
wx.showModal({
title: '温馨提示',
content: '为了良好的体验,请开启用户信息授权',
success: res =>{
if(res.confirm || res.cancel) {
let button = wx.createOpenSettingButton({
type: 'text',
text: '打开设置页面',
style: {
left: 10,
top: 76,
width: 170,
height: 40,
lineHeight: 40,
backgroundColor: '#4b6881',
color: '#ffffff',
textAlign: 'center',
fontSize: 16,
borderRadius: 4
}
})
button.show()
button.onTap(() => {
wx.getSetting({
success: res => {
button.destroy()
if(res.authSetting['scope.userInfo']) {
wx.getUserInfo({
withCredentials : false,
success: res => {
let info = res.userInfo
KUN.Server.uploadUserData(JSON.stringify(info),res=>{
if(res == '1') {
func_()
} else {
// 暂时不做处理
}
})
}
})
}
}
})
})
}
}
})
}
});
},

这里面就随便讲解一下,主要是用到了这个apiwx.createOpenSettingButton,在现在的微信小游戏的文档里面没有 按钮事件响应的方法名,我这里处理的方法是在模拟器中把button打印出来然后看里面的详细属性和方法,我这里发现了一个叫 onTap.

主要的思路是

首次进入游戏 -> 用户拒绝授权 -> 获取用户信息失败 -> 创建打开时设置的按钮 -> 绑定监听事件(onTap) -> 再次处理获取用户信息的逻辑.

小游戏跳转功能

最近小游戏又更新了一下,出现了一个小程序跳转功能,主要的API 是
wx.navigateToMiniProgram

这里面你主要去填写 appid 和要跳转的发行版本 ,,, 其他的你可以去选择也可以不用选择.

还是老样子直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (typeof(wx.navigateToMiniProgram) != 'undefined') {
wx.navigateToMiniProgram({
appId: 'xxxx',
path: '', // 这个可以填写个空.
// extarData: {
// open: ''
// },
envVersion: 'release',
success(res) {
// 打开成功
},
fail(res) {
// 打开失败
}

})
}else{
// 提示用户微信版本过低
}

小游戏推广中遇到的错误

在我这篇博客没有写完之前就收到了 boss 的微信消息,说用户进不去了,黑屏了,我是一脸蒙蔽,测试完全没有问题,去推广的时候就出现问题了,

主要是以下几个问题(我只是记录我遇到问题,希望能够对你有帮助,只是说作参考吧,我也是一点点去采坑,一点点去记录.o( ̄︶ ̄)o(持续更新中))

1.用户的微信小游戏版本太低,导致你使用微信最新api时候报错.

只要在调用该API的时候 加一个判断 typeof(你要调用的小游戏的函数) != undefined,即可

2.服务器地址配置 https协议只能是 443 吗?

经过我测试,不是的只要你在小程序后台配置 类似这样的格式其实也是可以的 这样就可以去访问 服务器其他的端口了 https://xxx.com:8080

我这里说明一下,我没有去测试 websocket 因为现在业务还没有这方面的业务.有的小伙伴可去测试一下,可以告诉我一声.谢谢.

暂时先写到这里,后面这个我会持续更新的,如有不对欢迎指正.

最后更新: 2019年08月14日 11:22

原始链接: https://leng521.top/posts/4ec7de9/