작은 프로그램을 개발할 때 사용자로부터 일부 권한을 얻어야 하는 경우가 많습니다. 예를 들어 직접 로그인을 위한 사용자 정보 획득, 위치 확인을 위한 지리적 위치 획득 등이 있습니다. 그런데 사용자가 승인을 거부하면 어떻게 해야 할까요?
미니 프로그램에서는 특정 작업을 수행하기 위해 사용자 권한을 얻는 것이 필수 전제 조건입니다. 예를 들어, 미니 프로그램에 들어가면 사용자 정보를 얻고 자체 플랫폼의 계정에 해당하는 UnionId를 사용하여 로그인하므로 사용자가 계정 비밀번호를 입력할 필요가 없습니다. 이는 좋은 경험입니다.
사용자 인증이 필요한 wx.getUserInfo 또는 wx.getLocation과 같은 API를 호출하면 미니 프로그램은 사용자가 인증을 선택할 수 있는 상자를 표시합니다.
사용자가 이를 허용하도록 선택하면 미니 프로그램은 다음에 미니 프로그램에 진입할 때 허용되지 않습니다. (미니 프로그램을 삭제한 후 진입하지 않는 한) 다시 묻고 사용자 권한을 직접 얻습니다. 여기서 문제는 사용자가 거부를 클릭한 후에는 해당 권한을 획득할 수 없으며 일정 시간 동안 미니 프로그램에 진입해도 이 팝업 상자가 다시 나타나지 않는다는 점입니다.
사용자 경험 및 개인 정보 보호 측면에서 미니 프로그램은 승인 없이 사용(또는 체험)하는 것이 가장 좋습니다. 그러나 일부 유형의 미니 프로그램에는 사용자 정보를 사용해야 합니다. 여기에 간단한 해결책이 있습니다.
직접 로그인하기 위한 사용자 정보 획득을 예로 들어보겠습니다. 사용자 데이터와 로그인을 가져오는 미니 프로그램에 들어가기 위한 첫 번째 페이지로 인증 페이지를 추가합니다. 기본적으로 아무 것도 표시되지 않거나 부팅 페이지로 사용될 수 있습니다.
사용자 정보를 얻으려면 wx.login과 wx.getUserInfo라는 두 가지 API를 사용해야 합니다. 이 두 API에 대한 자세한 내용은 공식 문서를 확인하세요.
로그인 방법을 추가하면 코드는 다음과 같습니다.
//登录 login: function () { var that = this if (typeof success == "function") { this.data.getUserInfoSuccess = success } wx.login({ success: function (res) { var code = res.code; wx.getUserInfo({ success: function (res) { //平台登录 }, fail: function (res) { that.setData({ getUserInfoFail: true }) } }) } }) }
호별 코드가 실패에 도달하면 사용자가 승인을 받을 때 거부를 클릭한 것으로 간주할 수 있습니다. getUserInfoFail이 true이면 다음과 같이 승인을 얻기 위한 버튼을 표시할 수 있습니다.
다음으로 또 다른 API인 wx.openSetting을 소개합니다. wx.openSetting을 사용하여 애플릿의 승인 설정으로 이동합니다. Android의 인터페이스는 다음과 같습니다.
인증 버튼을 클릭하면 여기로 이동하여 사용자가 홈페이지에 들어가기 전에 인증할 수 있습니다. 그렇지 않으면 인증 페이지에 그대로 유지됩니다.
하지만 여전히 작은 문제가 있습니다. 이 API는 기본 라이브러리 1.1.0에서만 사용할 수 있으므로 호환이 필요합니다.
그래서 최종 점프 인증 코드는 다음과 같습니다.
//跳转设置页面授权 openSetting: function () { var that = this if (wx.openSetting) { wx.openSetting({ success: function (res) { //尝试再次登录 that.login() } }) } else { wx.showModal({ title: '授权提示', content: '小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序->重新搜索进入->点击授权按钮' }) } }
다행히 1.1.0이 정착된 것은 이전 버전이고, 현재는 1.3.0입니다.
동일한 처리 방법을 사용하여 다른 권한을 얻을 수도 있습니다
관련 기사:
동기 요청 인증을 구현하는 WeChat 애플릿의 인스턴스 분석
위 내용은 WeChat 애플릿 취소 승인 문제: 사용자가 승인을 거부합니다. 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!