常用微信集積(サードパーティsdk集積キット)--微信登録
5662 ワード
序文
プログラム開発の過程では、サードパーティsdkが使用されます.ここでは、一般的なsdkの使用方法を説明するために、一般的なログイン、共有、支払いについて統合方法の総説を行います.一般的に、sdkはログイン、共有、支払いにおいて、次のような流れで行われます.
このように言えば非常に一般的であるが,大まかな流れはそうであるが,それぞれのsdkがこの過程で実現する方法に差がある可能性がある.したがって,サードパーティsdkを統合することは,特に難しくない.
ログイン
(1). ログイン開始
サードパーティログインは、通常、サードパーティのクライアントに先にログインし、このステップでユーザログインデータを取得し、取得したログイン情報でコストAppのログインデータをカプセル化し、本クライアントのログインインタフェースApiに送信してログインを実現する.具体的には以下の通りです.
この方法は,微信登録を開始したActivityで呼び出され,微信登録が開始されたことを示す.微信登録は,データ返却処理において本質的にWXEntryActivityのOnActivity Resultによって処理されるが,sdkはこのフローをカプセル化している.
(2). ログイン戻り結果処理
微信の結果を得るには、Appコードルートディレクトリの下でwxapiパッケージを構築し、その中でWXEntryActivityを作成し、IWXAPIEventHandlerインタフェースを実現する必要があります.このインタフェースはonRespとonReqの2つの方法を提供して結果処理を行う.私たちがしなければならないのは、結果が戻ったときに、このonRespメソッドを呼び出すように微信に通知することです.先ほどもお話ししましたが、WeChatによるログインリクエストの処理はOnActivity Resultによるものです.ここには
以上のように操作した後,WXEntryActivityのonRespで必要な微信登録戻り結果を得た.ここでは,カスタムhandleLoginResponseメソッドで処理した.
(3). Appを呼び出すログインプロセス
データがそろって検出されると、Appのログインプロセスを安全に呼び出すことができます.
ここでは、私のApp内ログインロジックはdealLoginResultメソッドで実現されています.Appごとにログインプロセスが異なるので、ここでは書きません.しかし、微信のログインプロセスは、ここまではすでに終わっており、残りの部分は本質的にAndroidプログラマーが自分で処理している(データは何でもあり、プロセスもカプセル化されており、表はあなたができないことを教えてくれている).
プログラム開発の過程では、サードパーティsdkが使用されます.ここでは、一般的なsdkの使用方法を説明するために、一般的なログイン、共有、支払いについて統合方法の総説を行います.一般的に、sdkはログイン、共有、支払いにおいて、次のような流れで行われます.
(req)--> -->
このように言えば非常に一般的であるが,大まかな流れはそうであるが,それぞれのsdkがこの過程で実現する方法に差がある可能性がある.したがって,サードパーティsdkを統合することは,特に難しくない.
ログイン
(1). ログイン開始
サードパーティログインは、通常、サードパーティのクライアントに先にログインし、このステップでユーザログインデータを取得し、取得したログイン情報でコストAppのログインデータをカプセル化し、本クライアントのログインインタフェースApiに送信してログインを実現する.具体的には以下の通りです.
/** 1. */
public void loginStart(Context context) {
MessageManager.showProgressDialog((Activity) context, " ...");
SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wechat_sdk_demo_test";
IWXAPI iwxapi = WXAPIFactory.createWXAPI(context, Constants.WX.APP_ID, true);
iwxapi.registerApp(FirstPageConstants.WX.APP_ID);
iwxapi.sendReq(req);
}
この方法は,微信登録を開始したActivityで呼び出され,微信登録が開始されたことを示す.微信登録は,データ返却処理において本質的にWXEntryActivityのOnActivity Resultによって処理されるが,sdkはこのフローをカプセル化している.
(2). ログイン戻り結果処理
微信の結果を得るには、Appコードルートディレクトリの下でwxapiパッケージを構築し、その中でWXEntryActivityを作成し、IWXAPIEventHandlerインタフェースを実現する必要があります.このインタフェースはonRespとonReqの2つの方法を提供して結果処理を行う.私たちがしなければならないのは、結果が戻ったときに、このonRespメソッドを呼び出すように微信に通知することです.先ほどもお話ししましたが、WeChatによるログインリクエストの処理はOnActivity Resultによるものです.ここには
/** 2. */
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
mWechatApi.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
}
@Override
public void onResp(BaseResp resp) {
handleLoginResponse(resp);
}
以上のように操作した後,WXEntryActivityのonRespで必要な微信登録戻り結果を得た.ここでは,カスタムhandleLoginResponseメソッドで処理した.
/** */
private void handleLoginResponse(BaseResp resp) {
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
loginByWX(((SendAuth.Resp) resp).code);
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
MessageManager.closeProgressDialog();
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED: {
MessageManager.showDialog((Activity) context, 0, " ", " , !", null, false);
}
break;
}
}
(3). Appを呼び出すログインプロセス
データがそろって検出されると、Appのログインプロセスを安全に呼び出すことができます.
/** 3. : , App */
private void loginByWX(final String code) {
new AsyncTask() {
@Override
protected WXUsersInfo doInBackground(Integer... params) {
MessageManager.showProgressDialog((Activity) context, " ...");
WXTokenInfo token = mLoginRepository.getWechatToken(code);
WXUsersInfo muser = mLoginRepository.getWeChatUserInfo(token);
return muser;
}
@Override
protected void onPostExecute(WXUsersInfo result) {
super.onPostExecute(result);
dealLoginResult(result);
}
}.execute();
}
ここでは、私のApp内ログインロジックはdealLoginResultメソッドで実現されています.Appごとにログインプロセスが異なるので、ここでは書きません.しかし、微信のログインプロセスは、ここまではすでに終わっており、残りの部分は本質的にAndroidプログラマーが自分で処理している(データは何でもあり、プロセスもカプセル化されており、表はあなたができないことを教えてくれている).