I.はじめに
小型マイクロチャネルプログラムは、ユーザーエクスペリエンスを最適化するために、すぐにアプレットを入力するときに、許可ウィンドウが表示されますキャンセル。イニシアチブは、認証ウィンドウをトリガーするボタンをクリックして、ユーザーが必要です。
まあ、私の練習では、以下のような問題点がありました。
1 。承認ウィンドウ取り出さない 2。希望する場合には、ユーザは、非表示ボタンを認可されています
1.実現
OnLaunch()app.js機能を、個人情報を取得するスニペットを追加します。ケースに実装されたユーザーは、(例えばアプレットを開くために二回目、)権限を持つユーザーは、自動的にユーザーの許可なしに個人情報を取得します。
// 取得したユーザ情報 wx.getSetting({ 成功:RES => { IF(res.authSetting [ ' scope.userInfo ' ]){ はconsole.log(" アプリケーションは:" + " ユーザーが権限を持っている" ) // 認可されました、 getUserInfoヘッドが直接ブロック再生することはできません、取得ニックネームを呼び出すことができます wx.getUserInfo({ RES:成功 => { // バックデコード解像度へ送られるかもしれないが、unionid これは .globalData.userInfo = res.userInfo はconsole.log(これを.globalData.userInfo) この .globalData.hasUserInfoは= trueに // getUserInfoネットワーク要求ので、Page.onLoadまで戻らないことがあり // ので、ここで、このコールバックを防止するために添加される IF(この.userInfoReadyCallback){ この。 userInfoReadyCallback(RES) } }、 失敗:(RES) => { はconsole.log(" アプリケーション:" + " ユーザー情報が失敗します" ) } }) } 他{ にconsole.log(" アプリ:" + " 一時的に不正なユーザ" ) } } })
(特定のページあなたの実際の状況に応じて)承認ボタンを追加しますme.wxml。
< ブロックWX:もし= "{!{hasUserInfo}}" > < 画像クラス= "userAvatar" SRC = '.. / .. /画像/アイコン/ wechat.png' > </ 画像> < ボタン開放型= "getUserInfo" bindgetuserinfo = "getUserInfo" >微信授权登录</ ボタン> </ ブロック>
以下の変数やメソッドme.jsは、イニシアチブは、ボタンをクリックし、ユーザを必要とし、許可なしにユーザーの前に、追加しました。
データ:{ ユーザー情報:ヌル、 hasUserInfo:偽 }、 getUserInfo:関数(E){ にconsole.log( "私:" + "用户点击授权" ) であれば(e.detail.userInfo){ この.setData({ ユーザー情報: e.detail.userInfo、 hasUserInfo:真 }) } }
2.認証ウィンドウをポップません
ここでは、注意する必要があります
認証ウィンドウには、ときにのみ、ユーザー第一の許可表示されます、つまり、一度だけ!!
私たちがする必要がマイクロチャネルアプレット開発ツールですべてのキャッシュをクリアします
3.場合は、非表示ボタンを認可されています
ユーザーが時間を承認しているので、app.jsは(ではない)でユーザーの個人情報を取得しますが、プロセスは非同期です