From 21be889086885c227c9e3b8c7b668d4d58fb14c7 Mon Sep 17 00:00:00 2001 From: snowfox Date: Mon, 6 Feb 2023 18:49:41 +0800 Subject: [PATCH] update docs --- android/build.gradle | 2 +- docs/build-setup-android.md | 27 ++++++++++--------- example/android/app/_BUCK | 4 +-- example/android/app/build.gradle | 2 +- .../wechatlibexample/ReactNativeFlipper.java | 2 +- .../android/app/src/main/AndroidManifest.xml | 16 ++++++++++- .../aili/temporary}/MainActivity.java | 2 +- .../aili/temporary}/MainApplication.java | 15 ++++++++--- .../MainApplicationReactNativeHost.java | 8 +++--- .../components/MainComponentsRegistry.java | 2 +- ...ApplicationTurboModuleManagerDelegate.java | 2 +- .../aili/temporary/wxapi/WXEntryActivity.java | 16 +++++++++++ example/package.json | 3 ++- example/src/App.tsx | 18 ++++++++++--- 14 files changed, 84 insertions(+), 35 deletions(-) rename example/android/app/src/main/java/{org/bigbug/member/rnapp => pro/aili/temporary}/MainActivity.java (98%) rename example/android/app/src/main/java/{org/bigbug/member/rnapp => pro/aili/temporary}/MainApplication.java (88%) rename example/android/app/src/main/java/{org/bigbug/member/rnapp => pro/aili/temporary}/newarchitecture/MainApplicationReactNativeHost.java (94%) rename example/android/app/src/main/java/{org/bigbug/member/rnapp => pro/aili/temporary}/newarchitecture/components/MainComponentsRegistry.java (94%) rename example/android/app/src/main/java/{org/bigbug/member/rnapp => pro/aili/temporary}/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java (96%) create mode 100644 example/android/app/src/main/java/pro/aili/temporary/wxapi/WXEntryActivity.java diff --git a/android/build.gradle b/android/build.gradle index e6b46c1..ed9f33b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -63,7 +63,7 @@ dependencies { // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native" - implementation group: 'com.tencent.mm.opensdk', name: 'wechat-sdk-android', version: '6.8.20' + api group: 'com.tencent.mm.opensdk', name: 'wechat-sdk-android', version: '6.8.20' } if (isNewArchitectureEnabled()) { diff --git a/docs/build-setup-android.md b/docs/build-setup-android.md index 0a574ee..9cc57b3 100644 --- a/docs/build-setup-android.md +++ b/docs/build-setup-android.md @@ -1,10 +1,14 @@ # Build Setup for Android +## 注意 +请根据本文档严格配置,否则会导致微信无法回调你的应用,例如授权登录后无法跳回 APP,或者小程序无法拉起 APP +如果配置过程有不明白,可以查看 [样本工程](https://github.com/little-snow-fox/react-native-wechat-lib/tree/master/example) +在样本工程里搜索 '**react-native-wechat-lib support**' 便可以找到所有需要添加配置的地方 -Then update `MainActivity.java` or `MainApplication.java`: - +## 注册模块 +添加到 `MainApplication.java` 或 `MainActivity.java`: ```java -import com.theweflex.react.WeChatPackage; // Add this line +import com.wechatlib.WeChatLibPackage; // Add this line @Override protected List getPackages() { @@ -12,29 +16,26 @@ import com.theweflex.react.WeChatPackage; // Add this line List packages = new PackageList(this).getPackages(); // Packages that cannot be autolinked yet can be added manually here, for example: // packages.add(new MyReactNativePackage()); - packages.add(new WeChatPackage()); // Add this line + packages.add(new WeChatLibPackage()); // Add this line return packages; } ``` -**Integrating with login and share** - -If you are going to integrate login or share functions, you need to -create a package named 'wxapi' in your application package and a class -named `WXEntryActivity` in it. - +## 登录和分享回调 +如果您打算集成登录或共享功能,则需要这样做 +在应用程序包和类中创建名为 "wxapi" 的包, 命名为 WXEntryActivit ```java package your.package.wxapi; import android.app.Activity; import android.os.Bundle; -import com.theweflex.react.WeChatModule; +import com.wechatlib.WeChatLibModule; public class WXEntryActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - WeChatModule.handleIntent(getIntent()); + WeChatLibModule.handleIntent(getIntent()); finish(); } } @@ -96,7 +97,7 @@ Then add the following node to `AndroidManifest.xml`: android:taskAffinity="your packagename" android:launchMode="singleTask" ``` -保证跳转后回到你的app的task。 +保证跳转后回到你的app的task。 实际上,我的代码如下: ```xml diff --git a/example/android/app/_BUCK b/example/android/app/_BUCK index 0207a32..b244cd5 100644 --- a/example/android/app/_BUCK +++ b/example/android/app/_BUCK @@ -35,12 +35,12 @@ android_library( android_build_config( name = "build_config", - package = "org.bigbug.member.rnapp", + package = "pro.aili.temporary", ) android_resource( name = "res", - package = "org.bigbug.member.rnapp", + package = "pro.aili.temporary", res = "src/main/res", ) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index e9b773c..363f0b2 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -135,7 +135,7 @@ android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { - applicationId "org.bigbug.member.rnapp" + applicationId "pro.aili.temporary" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/example/android/app/src/debug/java/com/wechatlibexample/ReactNativeFlipper.java b/example/android/app/src/debug/java/com/wechatlibexample/ReactNativeFlipper.java index e9d55ae..0053e38 100644 --- a/example/android/app/src/debug/java/com/wechatlibexample/ReactNativeFlipper.java +++ b/example/android/app/src/debug/java/com/wechatlibexample/ReactNativeFlipper.java @@ -4,7 +4,7 @@ *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. */ -package org.bigbug.member.rnapp; +package pro.aili.temporary; import android.content.Context; import com.facebook.flipper.android.AndroidFlipperClient; diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 56bf8f9..d7319c7 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="pro.aili.temporary"> @@ -22,7 +22,21 @@ + + + + + + + + diff --git a/example/android/app/src/main/java/org/bigbug/member/rnapp/MainActivity.java b/example/android/app/src/main/java/pro/aili/temporary/MainActivity.java similarity index 98% rename from example/android/app/src/main/java/org/bigbug/member/rnapp/MainActivity.java rename to example/android/app/src/main/java/pro/aili/temporary/MainActivity.java index 1eff83d..3df542d 100644 --- a/example/android/app/src/main/java/org/bigbug/member/rnapp/MainActivity.java +++ b/example/android/app/src/main/java/pro/aili/temporary/MainActivity.java @@ -1,4 +1,4 @@ -package org.bigbug.member.rnapp; +package pro.aili.temporary; import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivityDelegate; diff --git a/example/android/app/src/main/java/org/bigbug/member/rnapp/MainApplication.java b/example/android/app/src/main/java/pro/aili/temporary/MainApplication.java similarity index 88% rename from example/android/app/src/main/java/org/bigbug/member/rnapp/MainApplication.java rename to example/android/app/src/main/java/pro/aili/temporary/MainApplication.java index edc98f3..9def5da 100644 --- a/example/android/app/src/main/java/org/bigbug/member/rnapp/MainApplication.java +++ b/example/android/app/src/main/java/pro/aili/temporary/MainApplication.java @@ -1,4 +1,4 @@ -package org.bigbug.member.rnapp; +package pro.aili.temporary; import android.app.Application; import android.content.Context; @@ -9,9 +9,12 @@ import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.config.ReactFeatureFlags; import com.facebook.soloader.SoLoader; -import org.bigbug.member.rnapp.newarchitecture.MainApplicationReactNativeHost; +import pro.aili.temporary.newarchitecture.MainApplicationReactNativeHost; import java.lang.reflect.InvocationTargetException; import java.util.List; +// react-native-wechat-lib support ( +import com.wechatlib.WeChatLibPackage; +// ) public class MainApplication extends Application implements ReactApplication { @@ -26,8 +29,12 @@ public class MainApplication extends Application implements ReactApplication { protected List getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List packages = new PackageList(this).getPackages(); + + // react-native-wechat-lib support ( // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); + packages.add(new WeChatLibPackage()); + // ) + return packages; } @@ -73,7 +80,7 @@ public class MainApplication extends Application implements ReactApplication { We use reflection here to pick up the class that initializes Flipper, since Flipper library is not available in release mode */ - Class aClass = Class.forName("org.bigbug.member.rnapp.ReactNativeFlipper"); + Class aClass = Class.forName("pro.aili.temporary.ReactNativeFlipper"); aClass .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) .invoke(null, context, reactInstanceManager); diff --git a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/MainApplicationReactNativeHost.java b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/MainApplicationReactNativeHost.java similarity index 94% rename from example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/MainApplicationReactNativeHost.java rename to example/android/app/src/main/java/pro/aili/temporary/newarchitecture/MainApplicationReactNativeHost.java index 27c0907..37e81ff 100644 --- a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/MainApplicationReactNativeHost.java +++ b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/MainApplicationReactNativeHost.java @@ -1,4 +1,4 @@ -package org.bigbug.member.rnapp.newarchitecture; +package pro.aili.temporary.newarchitecture; import android.app.Application; import androidx.annotation.NonNull; @@ -19,9 +19,9 @@ import com.facebook.react.fabric.CoreComponentsRegistry; import com.facebook.react.fabric.FabricJSIModuleProvider; import com.facebook.react.fabric.ReactNativeConfig; import com.facebook.react.uimanager.ViewManagerRegistry; -import org.bigbug.member.rnapp.BuildConfig; -import org.bigbug.member.rnapp.newarchitecture.components.MainComponentsRegistry; -import org.bigbug.member.rnapp.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; +import pro.aili.temporary.BuildConfig; +import pro.aili.temporary.newarchitecture.components.MainComponentsRegistry; +import pro.aili.temporary.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; import java.util.ArrayList; import java.util.List; diff --git a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/components/MainComponentsRegistry.java b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/components/MainComponentsRegistry.java similarity index 94% rename from example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/components/MainComponentsRegistry.java rename to example/android/app/src/main/java/pro/aili/temporary/newarchitecture/components/MainComponentsRegistry.java index 0a26467..1be8b74 100644 --- a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/components/MainComponentsRegistry.java +++ b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/components/MainComponentsRegistry.java @@ -1,4 +1,4 @@ -package org.bigbug.member.rnapp.newarchitecture.components; +package pro.aili.temporary.newarchitecture.components; import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; diff --git a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java similarity index 96% rename from example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java rename to example/android/app/src/main/java/pro/aili/temporary/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java index 01d8634..02046cf 100644 --- a/example/android/app/src/main/java/org/bigbug/member/rnapp/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +++ b/example/android/app/src/main/java/pro/aili/temporary/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java @@ -1,4 +1,4 @@ -package org.bigbug.member.rnapp.newarchitecture.modules; +package pro.aili.temporary.newarchitecture.modules; import com.facebook.jni.HybridData; import com.facebook.react.ReactPackage; diff --git a/example/android/app/src/main/java/pro/aili/temporary/wxapi/WXEntryActivity.java b/example/android/app/src/main/java/pro/aili/temporary/wxapi/WXEntryActivity.java new file mode 100644 index 0000000..0f955ab --- /dev/null +++ b/example/android/app/src/main/java/pro/aili/temporary/wxapi/WXEntryActivity.java @@ -0,0 +1,16 @@ +package pro.aili.temporary.wxapi; + +// react-native-wechat-lib support ( +import android.app.Activity; +import android.os.Bundle; +import com.wechatlib.WeChatLibModule; + +public class WXEntryActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + WeChatLibModule.handleIntent(getIntent()); + finish(); + } +} +// ) diff --git a/example/package.json b/example/package.json index 2741441..26baf16 100644 --- a/example/package.json +++ b/example/package.json @@ -10,7 +10,8 @@ }, "dependencies": { "react": "18.1.0", - "react-native": "0.70.6" + "react-native": "0.70.6", + "react-native-wechat-lib": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.12.9", diff --git a/example/src/App.tsx b/example/src/App.tsx index b501b1a..b74a6c4 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -1,13 +1,13 @@ import * as React from 'react'; import { StyleSheet, View, Text, Button, Alert } from 'react-native'; -import { getApiVersion, registerApp, openWXApp, sendAuthRequest } from 'react-native-wechat-lib'; +import { getApiVersion, registerApp, openWXApp, sendAuthRequest, shareText } from 'react-native-wechat-lib'; export default function App() { const [versionNumber, setVersionNumber] = React.useState(); React.useEffect(() => { - registerApp('wx48d112e107595c4f', 'universalLink').then((res) => { + registerApp('wx7973caefdffba1b8', 'universalLink').then((res) => { console.log("registerApp: " + res) getApiVersion().then((num) => { console.log("test: " + num) @@ -18,7 +18,7 @@ export default function App() { }, []); - function login() { + function onLogin() { sendAuthRequest('snsapi_userinfo', '') .then((response: any) => { // todo 登录 response.code @@ -36,6 +36,13 @@ export default function App() { } + function onShareText() { + shareText({ + text: 'test content.', + scene: 0 + }).then() + } + return ( Call wechat SDK demo @@ -47,7 +54,10 @@ export default function App() {