当前位置: 首页 > Web前端 > HTML5

【最佳实践】小程序关键场景异常处理(一)

时间:2023-04-05 11:22:00 HTML5

1、后台小程序在运行过程中难免会遇到一些异常情况,给用户带来不好的体验。鉴于此,我们总结了一些常见的案例,归纳为最佳实践,以帮助开发者合理处理异常,提升小程序体验。2、最佳实践场景一:用户拒绝授权定位,二次入口页面不友好。有些小程序在进入首屏时需要获取用户的地理位置权限,但是如果用户误点击了【拒绝】按钮,那么下次再次进入小程序时,页面会直接显示不能位于。所以对于普通用户来说,很难知道如何重新启用权限,从而无法使用小程序,给用户带来不好的体验。首次进入小程序时,会弹出获取地理位置信息的对话框,用户点击拒绝。再次进入小程序时,页面会如右图,整个页面没有任何内容。那么我们如何解决这种场景下的问题呢?这里有一个优化建议:当用户进入页面时,判断当前用户的权限;如果用户没有相应权限,会弹出设置页面,引导用户开启权限。Page({onLoad(){swan.authorize({scope:'scope.userLocation',fail(err){//更多错误码参考官方文档:https://smartprogram.baidu.com/docs/develop/api/open/authorize_swan-authorize///以10003用户拒绝授权为例if(err.errCode===10003){swan.openSetting({success(res){//弹出异常提示toastswan.showToast({title:'请点击权限设置->地理位置开启地理位置权限',icon:'none'});},});}});}});这样用户在进入界面时可以收到友好的通知提示,通过重新启用权限使用该功能。场景二:获取用户信息及异常处理在业务开发中,经常需要获取用户信息、地址等;我们发现部分开发者仍在使用以下两个过时的API,我们不提倡这种做法。官方文档提供了通过按钮调用的方法,具体用法如下:获取用户信息获取用户地址//index.jsPage({getUserInfo(e){console.log('用户信息:',e);},chooseAddress(e){console.log('收货地址:',e);}});使用button调用API有一系列的好处:在获取信息之前,自动处理用户身份验证。使用简单且易于维护。同时,为了更好的处理调用API的错误场景,下面列出了可能出现的错误以及对应的解决方案:开发者可以在错误回调中使用错误码来处理不同类型的错误。场景三:支付及异常处理在很多小程序中,都需要接入支付功能。官网提供百度收银台等功能,可直接接入商家。具体使用方法见:https://smartprogram.baidu.com/docs/introduction/pay-intro/开发时我们会使用apiswan.requestPolymerPayment打开百度收银机。这种方式有两个好处:聚合了多种主流支付方式,包括:百度钱包、微信、支付宝、网银等,方便开发者一站式快速接入多个支付渠道。即整个流程支付环节的错误都会被收集起来,有利于闭环支付安排的监控。官网地址见:https://smartprogram.baidu.com/docs/develop/api/open/payment_swan-requestPolymerPayment/因此,对于使用该方法实现支付功能的小程序,我们可以获得更完整的和支付相关的错误信息。调用swan.requestPolymerPayment返回的错误码和错误信息如下:开发者可以在错误回调中使用错误码来处理不同类型的错误,给用户更友好的体验。