@phecdas/rn-wechat
v1.0.3
Published
Another react native bridge for WechatSDK
Downloads
2
Readme
rn-wechat
WechatSDK 的 react-native 库,基于 react-native-wechat 完成。需要 react-native 版本 0.60 及以上。
概要
| | iOS | Android | | :----------------: | :-----: | :-----: | | Version | 1.8.6.2 | 5.5.8 | | Share | ✅ | ✅ | | Pay | ✅ | ✅ | | Auth | ✅ | ✅ | | Launch MiniProgram | ✅ | ✅ |
安装
yarn add @phecdas/rn-wechat
# or
npm install @phecdas/rn-wechat
iOS
cd ios; pod install
;- 参考 微信开放文档 ,配置 Universal links、URL type、LSApplicationQueriesSchemes
- 配置你的
AppDelegate.m
,使其能正确处理 URL
// ios 9.0+
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
options:(NSDictionary<NSString*, id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
return [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
}
Android
- 向
android/app/proguard.pro
添加规则:
-keep class com.tencent.mm.opensdk.** {
*;
}
-keep class com.tencent.wxop.** {
*;
}
-keep class com.tencent.mm.sdk.** {
*;
}
- 参考 微信开放文档 新建
android/app/src/main/java/YOUR/PACKAGE/wxapi/WXEntryActivity.java
如下
// WXEntryActivity.java
package YOUR.PACKAGE.wxapi;
import android.app.Activity;
import android.os.Bundle;
import com.braeco.wechat.BCWechatModule;
public class WXEntryActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BCWechatModule.handleIntent(getIntent());
finish();
}
}
添加如下代码到 ApplicationManifest.xml
<activity
android:name=".wxapi.WXEntryActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="true"
android:taskAffinity="填写你的包名"
android:launchMode="singleTask">
</activity>
- 支付功能,参考文档新建
android/app/src/main/java/YOUR/PACKAGE/wxapi/WXPayEntryActivity.java
如下
// WXPayEntryActivity.java
package YOUR.PACKAGE.wxapi;
import android.app.Activity;
import android.os.Bundle;
import com.braeco.wechat.BCWechatModule;
public class WXPayEntryActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BCWechatModule.handleIntent(getIntent());
finish();
}
}
添加如下代码到 ApplicationManifest.xml
<activity
android:name=".wxapi.WXPayEntryActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="true"
android:taskAffinity="填写你的包名"
android:launchMode="singleTask">
</activity>
使用
必须先向微信注册你的 App
// App.tsx or App.jsx
import Wechat from '@phecdas/rn-wechat'
Wechat.registerApp(App_Id, Universal_Link);
分享
import WeChat, { WXShareType, WXShareScene } from '@phecdas/rn-wechat';
try {
await WeChat.shareMessage({
type: WXShareType.WXShareTypeText,
text: '要分享的文字',
scene: WXShareScene.WXSceneSession,
});
// 注意微信为了保护用户隐私,即使用户取消,也会返回成功
} catch (error) {
// 所以失败是有其他原因的
}
目前小程序仅支持分享到对话。
其他用法参考 Typescript 声明文件。
License
BSD-3-Clause