上一篇博客中讲解了sentry的基本使用,文后提到了sentry的扩展使用,关于异常上报的同时截图进行上传。
要知道,在iOS或者安卓中截屏是一件很困难的事,涉及到的权限根本绕不过去,但是却可以通过绘制的方式拿到截屏,考虑到代码的一致性,降低iOS和安卓的开发,所以选择在flutter中对屏幕进行截屏。
图片的上传推荐两种方式:
1.通过接口上传到oss云服务器中,但相对的可能会有很多异常,导致服务器存储大量无用的图片,但也可以通过一定的方式定期清理;
2.通过将图片进行base64编码字符串,通过sentry提供的方式上传到sentry服务器,然后利用工具对编码字符串进行解码得到图片,缺点是图片太大的话base64字符串会非常长,有上传限制的话字符串会被截取,如果对图片进行压缩,会导致解码的图片又小又糊,只能看清哪个界面,不能看清界面上的文字;
第一种oss的方法就不再过多的解释。
下面先把如何截图并保存到本地的方式分享给大家:
1.在项目中任何地方都能进行截图的方式
//main中runApp中的MyApp中包一层RepaintBoundary