开发者在开发小程序的时候可能会碰到一些这样的问题:
问题1 开发者工具上看效果没问题,但是在真机上测试不行?
问题2 有用户遇到小程序功能无法使用的问题,但无法快速定位解决?
今天我们的小故事与大家分享一些真机定位的技巧,可以解决上面两个问题。
1
vConsole开发利器和远程调试功能
针对问题1,我们提供了 vConsole 开发利器和远程调试功能,可以协助开发者在定位真机上的问题。
vConsole 的有四个Tab面板,可以先看下 Log 面板,看是否有异常信息,异常类型 thirdScriptError 是框架捕捉到的开发者的代码执行的异常,可以优先处理异常信息看是否可以解决问题。Log 面板可以看到异常出现的文件和行数。
除了异常日志,开发者还可以通过 console.log 接口在一些关键执行路径上打日志来定位问题,这些日志会呈现在 Log 面板上。
vConsole 默认是不开启的,可以通过下面2个方法来开启:
1 开发版和体验版可以点击小程序页面右上角的...按钮打开的菜单项“打开调试”来开启 vConsole。
2 正式版没有“打开调试”的菜单项,可以先通过开发版和体验版来开启 vConsole,然后再打开正式版。或者可以预埋一个隐藏操作,比如连续点击某个 Button 多次,然后调用 API 接口 wx.setEnableDebug 来打开。
vConsole 虽然强大,但在手机上查看大量的日志信息不方便,此外,vConsole 没有断点调试、无法修改样式,定位复杂问题需要花费比较多的时间。
小程序的业务逻辑运行在 AppService 层,页面渲染在 WebView 运行,并通过微信客户端通信,因此,我们想到了可以让 AppService 运行在开发者工具,页面渲染还是在手机 WebView,两者通过网络来通信,这样借助开发者工具的调试能力,就可以实现远程调试功能。
远程调试窗口通过手机客户端扫描开发者工具上生成的二维码来打开,无需像普通手机 H5 页面调试一样,需要在手机端进行一些设置。
打开的远程调试界面和开发者工具的模拟器的调试界面很像,需要注意的是,要在 Console 里对小程序进行调试,需要将调试的上下文切换到 VM Context 1 。
更多的远程调试的使用方法请参考使用文档。
2
意见反馈能力
对于问题2,小程序的使用反馈来自用户投诉,这种情况用户无法联系到开发者。我们遇见过有小程序功能出现问题,用户无法使用,但投诉无门的情况,而这些问题,开发者也没有途径去收集以及处理,这就导致了小程序服务质量下降,用户流失。
为此,我们开发了“意见反馈”功能,当出现问题时,开发者可以引导用户使用“意见反馈”进行反馈,并上传日志来辅助开发者定位问题。操作过程如下:
引导用户进入小程序帐号详情页面,具体可以在小程序界面点击右上角...按钮,选择关于菜单。接着在帐号详情页面点击右上角...按钮,选择意见反馈菜单进入页面。页面可以上传图片和日志,建议用户上传异常情况的截图,以及勾选允许开发者使用小程序日志选项上传日志,反馈信息越详细,越有助于定位问题。
如果觉得上面的操作步骤太麻烦,开发者可以通过在页面 WXML 添加下面的按钮,用户点击按钮可以直接打开“意见反馈”页面。
开发者需要定时处理用户的反馈,这样才能保证小程序的质量。开发者可以登录小程序管理后台,进入左侧菜单客服反馈,就可以看到用户的反馈内容以及下载日志来辅助定位问题。
为了保证日志信息足够详细,开发者需要用下面的接口在代码的关键执行路径上写日志。
wx.getLogManager 接口的更详细使用请参考文档。
希望通过这些小技巧,可以帮助大家顺畅地开发小程序。
1,生成小程序码,识别以后也只能在正式版上查看效果,能不能也在开发版上加上调试这个功能呢?
2,如果swiper组件能支持视频轮播,那就最好了
支持
有个模式 选二维码编译就可以了
如果能查看网络请求就nb了
新版本远程调试可以看网络请求了
真机调试没问题。,到手机实际就不好使!
vConsole 被 live-player 或者video 覆盖了怎么办
小游戏什么时候可以远程调试呢?
生成小程序码 是否能像 app跳转小程序那样 传入一个 体验 或者 正式 或者开发版的参数 生成的码是对应的?
不是可以自己生成参数二维码,在线调试参数二维码的?
我知道。但是现在有这种方法 更好。
我i的这个需求已经实现了啊,很强大。
小游戏什么时候可以远程呢+1?
目前遇到绘制多个canvas导致ios手机闪退(必现),安卓没有问题。想canvas这种真机调试又不支持,导致现在没法定位ios真机报什么错误,从而难以定位问题。
这种情况,官方有解决方案吗
小游戏无法远程调试啊
远程调试的时候,如果更改了代码,需要结束调试再重新扫描。如果可以直接刷新页面不用结束调试就好了。