Skip to content

Commit 3e4f95c

Browse files
authored
Support WeChat Login in WebKitWebViewUIImplementation #362
ref DEV-2810
2 parents ceab345 + 3181970 commit 3e4f95c

File tree

23 files changed

+5783
-3321
lines changed

23 files changed

+5783
-3321
lines changed

example/capacitor/package-lock.json

Lines changed: 11 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/reactnative/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,5 +180,5 @@ dependencies {
180180
}
181181

182182
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
183-
implementation "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.6.5"
183+
implementation "com.tencent.mm.opensdk:wechat-sdk-android:6.8.34"
184184
}

example/reactnative/android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@
4949
android:host="host"
5050
android:pathPrefix="/path"
5151
android:scheme="com.authgear.example.rn" />
52-
<data
53-
android:host="host"
54-
android:pathPrefix="/open_wechat_app"
55-
android:scheme="com.authgear.example.rn" />
5652
</intent-filter>
5753
</activity>
5854
</application>

example/reactnative/android/gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@ android.useAndroidX=true
2727
# ./gradlew <task> -PreactNativeArchitectures=x86_64
2828
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
2929

30+
# NOTE(louis): The Authgear SDK is not compatible with the new arch.
3031
# Use this property to enable support to the new architecture.
3132
# This will allow you to use TurboModules and the Fabric render in
3233
# your application. You should enable this flag either if you want
3334
# to write custom TurboModules/Fabric components OR use libraries that
3435
# are providing them.
35-
newArchEnabled=true
36+
newArchEnabled=false
3637

3738
# Use this property to enable or disable the Hermes JS engine.
3839
# If set to false, you will be using JSC instead.

example/reactnative/ios/Podfile.lock

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1721,73 +1721,73 @@ EXTERNAL SOURCES:
17211721
:path: "../node_modules/react-native/ReactCommon/yoga"
17221722

17231723
SPEC CHECKSUMS:
1724-
authgear-react-native: cfd45b210c8bd32f4a540a0f10197e6b31b66000
1724+
authgear-react-native: 5d523ca4c9db4810847f7c405f8bdddbd0479693
17251725
boost: 1dca942403ed9342f98334bf4c3621f011aa7946
17261726
DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
17271727
FBLazyVector: be509404b5de73a64a74284edcaf73a5d1e128b1
17281728
fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be
17291729
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
17301730
hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6
1731-
RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648
1731+
RCT-Folly: 84578c8756030547307e4572ab1947de1685c599
17321732
RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706
17331733
RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31
17341734
RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930
17351735
React: 1d3d5bada479030961d513fb11e42659b30e97ff
17361736
React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0
1737-
React-Core: 10420b32e62acf6b3aa0a570e45566001175c777
1738-
React-CoreModules: aad977a7dbff83aa707c4045e5db81446a511cca
1739-
React-cxxreact: 1bee1b97e7d537f1a33d9eb68c9426c1fc1a4e3c
1737+
React-Core: 9f33c0fc7776a5796d4dae09c363bd58e6a27efe
1738+
React-CoreModules: 91afb654834f0a1f48fb26dd1f4d1a1460c44def
1739+
React-cxxreact: c7491114266a70f8215306f1d0c4b54a811e77cf
17401740
React-debug: 4ae2e95c2d392cca29939a3a2f2b4320ddff3e59
1741-
React-defaultsnativemodule: b585565214178c5780b54e4d56815d65782eac81
1742-
React-domnativemodule: 03fd1847e49505aa9024acbe4f0811e441dc89a2
1743-
React-Fabric: fc0898bb601b03ed41ab0df3e7b1a4acd05a6cff
1744-
React-FabricComponents: 13e78253b210d112b3ffddca5b7323db7f254358
1745-
React-FabricImage: a86ff938570a06c2a9fbf00ff0b00195f0bd4aba
1741+
React-defaultsnativemodule: 43d27f1844b4c18fc03fa4fa35ea2f1c48d64237
1742+
React-domnativemodule: bca178dd0ce1532f75be783f6f2923f675a778ae
1743+
React-Fabric: d6bc0222335270eb76c28dd5036c03a010c04d51
1744+
React-FabricComponents: 05eec9e2cf998be793daaee8fa8a8ea6d1187785
1745+
React-FabricImage: 3a12374b0aedda71c7ef6bd64b59479b8bb3fe05
17461746
React-featureflags: 5670e0dcdc17ba2515963d117dacc13d5b69c431
1747-
React-featureflagsnativemodule: 79dea40c60cdc0356aadc67a099bba0af8c34e4f
1748-
React-graphics: 04eed50a115e750e4644c1e955f32bec57f6a235
1749-
React-hermes: add932964f5ef024c86352dcc0dc427e6309642e
1750-
React-idlecallbacksnativemodule: 3e8d5085a21eb2f70ac64ff9817f8f8a603518a9
1751-
React-ImageManager: 3239badd14cc602baf836b5d7151ffa90393deae
1752-
React-jserrorhandler: 81ac36638e02c33a9df0bdbeec464d2e699ac8a9
1753-
React-jsi: 690f3742db66cab8d5219bcfbc19fee112c6bb0c
1754-
React-jsiexecutor: a060f7e989da21e2478f652d7799e3b5ae5db262
1755-
React-jsinspector: 0eb6ea6f6b1e42edeab4bcad092d37ef748e337a
1756-
React-jsitracing: 737a69a469e2bc821cf8ae11977bded522393719
1757-
React-logger: 162c09cc432b02d4a0db31b1d98f6df5243a2679
1758-
React-Mapbuffer: f760d2229640be48cb3c2d4832b5bbc3018123fc
1759-
React-microtasksnativemodule: 1364ae5354f51b3ecee8eb718b5b6d1686d2ff4d
1747+
React-featureflagsnativemodule: bb13129d1427327b2eb8cc13d3879363a4cd8326
1748+
React-graphics: 659968f797257c0071ddff28a2d094c8e5c5899c
1749+
React-hermes: 6eb81c6f72c25d9058b6030227d0fcc1f741a807
1750+
React-idlecallbacksnativemodule: 551b7a89b46041c746640fe13eacf39c1b169709
1751+
React-ImageManager: e3d0270c82bf39432da2aff2fcd60dd16b308689
1752+
React-jserrorhandler: f60c9b68b4d4ac1449bddc2553610708e939ddee
1753+
React-jsi: 47528a2928f38fe15e3d06a96de886e1a779ffc7
1754+
React-jsiexecutor: 88a141c4dc821e1b2aa7ecc7d6af7b186e8455a2
1755+
React-jsinspector: c26cf4118ea7c1aae721d2cde5acf3b2cdceb814
1756+
React-jsitracing: 810d0465c3455e352a71147c18332b1cba1d1410
1757+
React-logger: d42a53754a7252cc7a851315f0da2e46b450ea92
1758+
React-Mapbuffer: 89885d1518433a462fe64b68bf5e097997380090
1759+
React-microtasksnativemodule: 36341e09dcd1df535503e6ed2ddf88f10da56d52
17601760
React-nativeconfig: 539ff4de6ce3b694e8e751080568c281c84903ce
1761-
React-NativeModulesApple: 771cc40b086281b820fe455fedebbe4341fd0c90
1762-
React-perflogger: 4e80a5b8d61dfb38024e7d5b8efaf9ce1037d31f
1763-
React-performancetimeline: 1dcacc31d81f790f43a2d434ec95b0f864582329
1761+
React-NativeModulesApple: 702246817c286d057e23fe4b1302019796e62521
1762+
React-perflogger: f260e2de95f9dbd002035251559c13bf1f0643d4
1763+
React-performancetimeline: 957075cead70fe9536a327eb4f842b3d8982f2ec
17641764
React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5
1765-
React-RCTAnimation: 0cda303ef8ca5a2d0ee9e425f188cc9fc1d2e20f
1766-
React-RCTAppDelegate: 1edcdebdaebf5120bdaa9d54bc40789714be3719
1767-
React-RCTBlob: dab83a3c22210e5c7a8267834c68e6cf94bc1ce2
1768-
React-RCTFabric: 19ba31d6b913b8b4aa8b27e4d6f5dc8ebd93a438
1769-
React-RCTImage: b9c3d2cff3b8214322022cdf8afb92ff978bb92e
1770-
React-RCTLinking: e58c4fa216f9ac87ed3d4a0cce03905df67adec0
1771-
React-RCTNetwork: 9f206fa039e107f51ddfac133df79105643ea2bd
1772-
React-RCTSettings: c7663cfcb3531cd438b8f73e98cd2d982a4bbd72
1773-
React-RCTText: cfee29316f1049f016cbd81328a89a8a07410bba
1774-
React-RCTVibration: 20f5efc1b05cd3f5f7ea03489dd3766c890fb493
1765+
React-RCTAnimation: a49bd2c28c3f32b1d01ff1163603aee3d420ce42
1766+
React-RCTAppDelegate: f7aa2f938a6673cfd2a76e76fea8c4b38a4a5bec
1767+
React-RCTBlob: 8ddf30f97222f4d8227f64428349fd8252292cb5
1768+
React-RCTFabric: 51fb64f7ca7ca2fa334433ba6d4f12750a481cf1
1769+
React-RCTImage: 077a25f3a9a6b79938a01c2cfae05ea5f07fc584
1770+
React-RCTLinking: 0c8415c600942454d663c4c4dc0d3b00aa7ba5e5
1771+
React-RCTNetwork: 42a3c6fb5318dcc9f8796f43de081799fb905021
1772+
React-RCTSettings: 1028522e45192515bd8c5308752d3270ee95fd66
1773+
React-RCTText: 29ef786d78f69ec5b571634ef2ddd6ec177c958a
1774+
React-RCTVibration: 97859ed50816369f4830f623dfac8dc9877f3c5c
17751775
React-rendererconsistency: ccd50d5ee6544b26cd11fff5ad1112c5058a0064
1776-
React-rendererdebug: d8f43065459c2095f27a173121f03dcd1d1b08e5
1776+
React-rendererdebug: 2092a1207a0023ac30877f4f730b403bfaf5ccbe
17771777
React-rncore: bfe554cb773978e8b94898866964c9579cb0c70c
1778-
React-RuntimeApple: 89c319b1610d4ca8895642cf0eae1188bf864270
1779-
React-RuntimeCore: 30399cbd2368f7e031692875275984fa42142601
1778+
React-RuntimeApple: 80949ebe7e6a94296e0168a940832d2029b66982
1779+
React-RuntimeCore: f04b5d1eb0534a4f4f46bc76a938a9360ad91024
17801780
React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b
1781-
React-RuntimeHermes: c78f07b7a599c1c9a889189c02436600e72c8b27
1782-
React-runtimescheduler: 9f6b0b85154ed8a17a899cd1bab258a26c8db2cd
1781+
React-RuntimeHermes: 91c2a67a99f316f11a08d3d9280ab4c9fae59b56
1782+
React-runtimescheduler: 76bb85f5ba01e800b4970fbc84eeaf10756c50c4
17831783
React-timing: c9c7c0fe2fdfc433ef208889b6191dfb45457d68
1784-
React-utils: e6697b03f21c7ac57b075d848cda7882662cabf7
1785-
ReactCodegen: 484b223748d7489d7036db1cbf79896d297e33a7
1786-
ReactCommon: 832cdd669aeecd430d9ca1975d15676b38d0b263
1784+
React-utils: 1b14c41c3edf4d96db1247a78e0ad96e7ceea011
1785+
ReactCodegen: 0a0eef9c8cd84c932ae1868832086c6441811e84
1786+
ReactCommon: 3c1c8c6d777103c0e60e37c6c5f08e828e2a77c9
17871787
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
17881788
WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f
17891789
Yoga: be6f55a028e86c83ae066f018e9b5d24ffc45436
17901790

17911791
PODFILE CHECKSUM: fb492fbad90606e1de36c6717b2aa697a1e9a04d
17921792

1793-
COCOAPODS: 1.15.2
1793+
COCOAPODS: 1.16.2

example/reactnative/ios/reactNativeExample/AppDelegate.mm

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#import "AppDelegate.h"
22

33
#import <React/RCTBundleURLProvider.h>
4-
#import <AGAuthgearReactNative.h>
54
#import "RCTWechatAuthModule.h"
65

76
// config
@@ -42,7 +41,6 @@ - (NSURL *)bundleURL
4241

4342
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler {
4443
[WXApi handleOpenUniversalLink:userActivity delegate:self];
45-
[AGAuthgearReactNative application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
4644
return YES;
4745
}
4846

example/reactnative/ios/reactNativeExample/RCTWeChatAuthModule.m

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ + (BOOL)requiresMainQueueSetup
3535
self.sendWechatAuthResolve = resolve;
3636
self.sendWechatAuthReject = reject;
3737

38-
SendAuthReq* req = [[SendAuthReq alloc] init];
39-
req.scope = @"snsapi_userinfo";
40-
req.state = state;
41-
[WXApi sendReq:req completion:nil];
38+
dispatch_async(dispatch_get_main_queue(), ^{
39+
SendAuthReq* req = [[SendAuthReq alloc] init];
40+
req.scope = @"snsapi_userinfo";
41+
req.state = state;
42+
[WXApi sendReq:req completion:nil];
43+
});
4244
}
4345

4446
- (void)handleWechatAuthResult:(NSNotification *)notification

example/reactnative/src/screens/MainScreen.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,10 @@ const HomeScreen: React.FC = () => {
369369
ios: {
370370
modalPresentationStyle: 'fullScreen',
371371
isInspectable: true,
372+
wechatRedirectURI,
373+
},
374+
android: {
375+
wechatRedirectURI,
372376
},
373377
})
374378
: undefined,

example/reactnative/yarn.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,17 +2472,17 @@ bl@^4.1.0:
24722472
readable-stream "^3.4.0"
24732473

24742474
brace-expansion@^1.1.7:
2475-
version "1.1.11"
2476-
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
2477-
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
2475+
version "1.1.12"
2476+
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz"
2477+
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
24782478
dependencies:
24792479
balanced-match "^1.0.0"
24802480
concat-map "0.0.1"
24812481

24822482
brace-expansion@^2.0.1:
2483-
version "2.0.1"
2484-
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
2485-
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
2483+
version "2.0.2"
2484+
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz"
2485+
integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
24862486
dependencies:
24872487
balanced-match "^1.0.0"
24882488

package-lock.json

Lines changed: 20 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)