Native WeChat
在 Android 与 iOS 支持微信 SDK 的 React Native 库。
动机
许多 React Native 开发者不具备原生开发能力,更不用提将他们的 App 对接到微信。尤其微信 OpenSDK 是一个令人头疼的东西,因为它的文档十分糟糕,里面许多的 API 并不清晰与直观。为帮助使用 React Native 的开发者对接微信,我开发了这个库,希望能够帮助到您。
特性
- Native WeChat 是新的,与此同时许多同类的库都暂停维护并不再适配最新的微信 API;
- Native WeChat 支持新旧 React Native 架构;
- Native Wechat 支持 TurboModule,可以懒加载以加快 App 启动;
- 支持 TypeScript 以获取更好的语言提示与类型错误检测;
- 几乎所有的 API 均返回 Promise。
使用入门
注册 SDK
在调用任何 API 之前,请务必调用 registerApp
来注册 SDK。
import {registerApp} from 'native-wechat';
useEffect(()=>{
return registerApp('wx964290141ebe9b7b');
}, [])
当调用 registerApp
后,它将注册一个从原生端返回事件的监听器,并返回一个函数用于注销这个监听器。
调用 API
是时候调用 API 了。举个例子,我们要向微信发送一个鉴权请求,并接受返回的 code
,您需要调用 sendAuthRequest
。
import {registerApp, sendAuthRequest} from 'native-wechat';
import {Button, Text} from 'react-native';
import {verifyWechatCode} from '@/api/auth/wechat'
useEffect(()=>{
registerApp('wx964290141ebe9b7b');
}, [])
const onButtonClicked = async () =>{
const {data: {code}} = await sendAuthRequest();
await verifyWechatCode(code);
}
return <Button onClick={onButtonClicked}>
<Text>Send Auth Request</Text>
</Button>
几乎所有 API 都会返回 Promise,sendAuthRequest
也是。当用户在微信上授权信息后,Promise 将变为 resolved,并携带 code
。所有返回 Promise 的 API 都返回一个名为 NativeWechatResponse
的泛型类型。
export type NativeWechatResponse<T = Record<string, unknown>> = {
type: string;
errorCode: number;
errorStr: string | null;
data: T;
};
支持
若您在使用这个库时遇到了困难,请在 GitHub 上创建一个 issue,不要犹豫。我会尽快尽可能处理。