安卓实现扫码登录
This commit is contained in:
parent
a325e153c8
commit
f356067265
@ -6,6 +6,7 @@ import android.graphics.Bitmap;
|
|||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.util.Base64;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
@ -25,11 +26,17 @@ import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
|||||||
import com.facebook.react.bridge.Arguments;
|
import com.facebook.react.bridge.Arguments;
|
||||||
import com.facebook.react.bridge.Callback;
|
import com.facebook.react.bridge.Callback;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
|
import com.facebook.react.bridge.ReactContext;
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
import com.facebook.react.bridge.ReactMethod;
|
||||||
import com.facebook.react.bridge.ReadableMap;
|
import com.facebook.react.bridge.ReadableMap;
|
||||||
import com.facebook.react.bridge.WritableMap;
|
import com.facebook.react.bridge.WritableMap;
|
||||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||||
|
import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
|
||||||
|
import com.tencent.mm.opensdk.diffdev.DiffDevOAuthFactory;
|
||||||
|
import com.tencent.mm.opensdk.diffdev.IDiffDevOAuth;
|
||||||
|
import com.tencent.mm.opensdk.diffdev.OAuthErrCode;
|
||||||
|
import com.tencent.mm.opensdk.diffdev.OAuthListener;
|
||||||
import com.tencent.mm.opensdk.modelbase.BaseReq;
|
import com.tencent.mm.opensdk.modelbase.BaseReq;
|
||||||
import com.tencent.mm.opensdk.modelbase.BaseResp;
|
import com.tencent.mm.opensdk.modelbase.BaseResp;
|
||||||
import com.tencent.mm.opensdk.modelbiz.ChooseCardFromWXCardPackage;
|
import com.tencent.mm.opensdk.modelbiz.ChooseCardFromWXCardPackage;
|
||||||
@ -149,6 +156,42 @@ public class WeChatLibModule extends ReactContextBaseJavaModule implements IWXAP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendEvent(ReactContext reactContext, String eventName, WritableMap params) {
|
||||||
|
reactContext.getJSModule(RCTNativeAppEventEmitter.class).emit(eventName, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void authByScan(String appid, String nonceStr, String timeStamp, String scope, String signature, String schemeData, final Callback callback) {
|
||||||
|
if (api == null) {
|
||||||
|
callback.invoke(NOT_REGISTERED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IDiffDevOAuth oauth = DiffDevOAuthFactory.getDiffDevOAuth();
|
||||||
|
oauth.stopAuth();
|
||||||
|
oauth.auth(appid, scope, nonceStr, timeStamp, signature, new OAuthListener() {
|
||||||
|
@Override
|
||||||
|
public void onAuthGotQrcode(String var1, byte[] var2){
|
||||||
|
WritableMap map = Arguments.createMap();
|
||||||
|
String base64String = Base64.encodeToString(var2, Base64.DEFAULT);
|
||||||
|
map.putString("qrcode", base64String);
|
||||||
|
sendEvent(getReactApplicationContext(), "onAuthGotQrcode", map);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onQrcodeScanned() {
|
||||||
|
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onAuthFinish(OAuthErrCode var1, String var2){
|
||||||
|
WritableMap map = Arguments.createMap();
|
||||||
|
map.putString("authCode", var2);
|
||||||
|
map.putInt("errCode", var1.getCode());
|
||||||
|
callback.invoke(map);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@ReactMethod
|
@ReactMethod
|
||||||
public void registerApp(String appid, String universalLink, Callback callback) {
|
public void registerApp(String appid, String universalLink, Callback callback) {
|
||||||
this.appId = appid;
|
this.appId = appid;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user