Библиотека React Native для поддержки API Wechat на Android и iOS.
Пожалуйста, обратитесь к Expo Native Wechat.
Большинство разработчиков, использующих React Native для создания приложений, не обладают собственными навыками разработки, не говоря уже о подключении своих приложений к WeChat.
В частности, WeChat OpenSDK — это настоящая головная боль из-за дерьмовой документации, в которой многие API не ясны и не интуитивно понятны. Чтобы помочь разработчикам, использующим React Native, я максимально постарался создать эту библиотеку. И я надеюсь, что вы выиграете от этого и будете меньше разочаровываться в WeChat.
Прежде чем вызывать какие-либо API, необходимо зарегистрировать Native WeChat, вызвав registerApp
.
import { registerApp } from 'native-wechat' ;
useEffect ( ( ) => {
return registerApp ( 'wx964290141ebe9b7b' ) ;
} , [ ] )
При вызове registerApp
будет прослушиватель для получения событий от Wechat. registerApp
возвращает функцию для удаления прослушивателя, и никакие события не будут получены от Wechat.
Теперь пришло время вызвать API. Например, мы отправим запрос на авторизацию в Wechat и получим код. Здесь вы можете использовать API с именем 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 в Native WeChat многообещающие. То же самое относится и к sendAuthRequest
который вернет обещание. Когда пользователь подтверждает запрос в Wechat, обещание разрешается как данные с кодом. Все обещанные API возвращают общий тип с именем NativeWechatResponse
.
export type NativeWechatResponse < T = Record < string , unknown > > = {
type : string ;
errorCode : number ;
errorStr : string | null ;
data : T ;
} ;
Если у вас возникли проблемы с использованием этой библиотеки, не стесняйтесь открыть проблему. Я всегда здесь, чтобы помочь.