React Native bridging library that integrates WeChat SDKs:
- iOS SDK 1.7.2
- Android SDK 221
react-native-wechat has the following tracking data in the open source world:
| NPM | Dependency | Downloads | Build |
|---|---|---|---|
react-native-wechat uses Promises, therefore you can use Promise
or async/await to manage your dataflow.
appid{String} the appid you get from WeChat dashboard- returns {Boolean} explains if your application is registered done
This method should be called once globally.
import*asWeChatfrom'react-native-wechat';WeChat.registerApp('appid');appid{String} the appid you get from WeChat dashboarddescription{String} the description of your app- returns {Boolean} explains if your application is registered done
This method is only available on iOS.
- returns {Boolean} if WeChat is installed.
Check if the WeChat app is installed on the device.
- returns {Boolean} Contains the result.
Check if wechat support open url.
- returns {String} Contains the result.
Get the WeChat SDK api version.
- returns {Boolean}
Open the WeChat app from your application.
scope{Array|String} Scopes of auth request.state{String} the state of OAuth2- returns {Object}
Send authentication request, and it returns an object with the following fields:
| field | type | description |
|---|---|---|
| errCode | Number | Error Code |
| errStr | String | Error message if any error occurred |
| openId | String | |
| code | String | Authorization code |
| url | String | The URL string |
| lang | String | The user language |
| country | String | The user country |
title{String} title of this message.type{Number} type of this message. Can be {news|text|imageUrl|imageFile|imageResource|video|audio|file}thumbImage{String} Thumb image of the message, which can be a uri or a resource id.description{String} The description about the sharing.webpageUrl{String} Required if type equalsnews. The webpage link to share.imageUrl{String} Provide a remote image if type equalsimage.videoUrl{String} Provide a remote video if type equalsvideo.musicUrl{String} Provide a remote music if type equalsaudio.filePath{String} Provide a local file if type equalsfile.fileExtension{String} Provide the file type if type equalsfile.
message{ShareMetadata} This object saves the metadata for sharing- returns {Object}
Share a ShareMetadata message to timeline(朋友圈) and returns:
| name | type | description |
|---|---|---|
| errCode | Number | 0 if authorization successed |
| errStr | String | Error message if any error occurred |
The following examples require the 'react-native-chat' and 'react-native-fs' packages.
import*asWeChatfrom'react-native-wechat';importfsfrom'react-native-fs';letresolveAssetSource=require('resolveAssetSource');// Code example to share text message:try{letresult=awaitWeChat.shareToTimeline({type: 'text',description: 'hello, wechat'});console.log('share text message to time line successful:',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}// Code example to share image url:// Share raw http(s) image from web will always fail with unknown reason, please use image file or image resource insteadtry{letresult=awaitWeChat.shareToTimeline({type: 'imageUrl',title: 'web image',description: 'share web image to time line',mediaTagName: 'email signature',messageAction: undefined,messageExt: undefined,imageUrl: 'http://www.ncloud.hk/email-signature-262x100.png'});console.log('share image url to time line successful:',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}// Code example to share image file:try{letrootPath=fs.DocumentDirectoryPath;letsavePath=rootPath+'/email-signature-262x100.png';console.log(savePath);/* * savePath on iOS may be: * /var/mobile/Containers/Data/Application/B1308E13-35F1-41AB-A20D-3117BE8EE8FE/Documents/email-signature-262x100.png * * savePath on Android may be: * /data/data/com.wechatsample/files/email-signature-262x100.png **/awaitfs.downloadFile('http://www.ncloud.hk/email-signature-262x100.png',savePath);letresult=awaitWeChat.shareToTimeline({type: 'imageFile',title: 'image file download from network',description: 'share image file to time line',mediaTagName: 'email signature',messageAction: undefined,messageExt: undefined,imageUrl: "file://"+savePath// require the prefix on both iOS and Android platform});console.log('share image file to time line successful:',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}// Code example to share image resource:try{letimageResource=require('./email-signature-262x100.png');letresult=awaitWeChat.shareToTimeline({type: 'imageResource',title: 'resource image',description: 'share resource image to time line',mediaTagName: 'email signature',messageAction: undefined,messageExt: undefined,imageUrl: resolveAssetSource(imageResource).uri});console.log('share resource image to time line successful',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}// Code example to download an word file from web, then share it to WeChat session// only support to share to session but time line// iOS code use DocumentDirectoryPathtry{letrootPath=fs.DocumentDirectoryPath;letfileName='signature_method.doc';/* * savePath on iOS may be: * /var/mobile/Containers/Data/Application/B1308E13-35F1-41AB-A20D-3117BE8EE8FE/Documents/signature_method.doc **/letsavePath=rootPath+'/'+fileName;awaitfs.downloadFile('https://open.weixin.qq.com/zh_CN/htmledition/res/assets/signature_method.doc',savePath);letresult=awaitWeChat.shareToSession({type: 'file',title: fileName,// WeChat app treat title as file namedescription: 'share word file to chat session',mediaTagName: 'word file',messageAction: undefined,messageExt: undefined,filePath: savePath,fileExtension: '.doc'});console.log('share word file to chat session successful',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}//android code use ExternalDirectoryPathtry{letrootPath=fs.ExternalDirectoryPath;letfileName='signature_method.doc';/* * savePath on Android may be: * /storage/emulated/0/Android/data/com.wechatsample/files/signature_method.doc **/letsavePath=rootPath+'/'+fileName;awaitfs.downloadFile('https://open.weixin.qq.com/zh_CN/htmledition/res/assets/signature_method.doc',savePath);letresult=awaitWeChat.shareToSession({type: 'file',title: fileName,// WeChat app treat title as file namedescription: 'share word file to chat session',mediaTagName: 'word file',messageAction: undefined,messageExt: undefined,filePath: savePath,fileExtension: '.doc'});console.log('share word file to chat session successful',result);}catch(e){if(einstanceofWeChat.WechatError){console.error(e.stack);}else{throwe;}}message{ShareMetadata} This object saves the metadata for sharing- returns {Object}
Similar to shareToTimeline but sends the message to a friend or chat group.
payload{Object} the payment datapartnerId{String} 商家向财付通申请的商家IDprepayId{String} 预支付订单IDnonceStr{String} 随机串timeStamp{String} 时间戳package{String} 商家根据财付通文档填写的数据和签名sign{String} 商家根据微信开放平台文档对数据做的签名
- returns {Object}
Sends request for proceeding payment, then returns an object:
| name | type | description |
|---|---|---|
| errCode | Number | 0 if authorization successed |
| errStr | String | Error message if any error occurred |
$ npm install react-native-wechat --saveReact Native Starter Kit - is a mobile starter kit that allows your team to fully focus on development of the features that set your product apart from the competitors instead of building your app from scratch.
| GitHub | Role | |
|---|---|---|
| @yorkie | Author | yorkiefixer@gmail.com |
| @xing-zheng | Emeriti | |
| @tdzl2003 | Emeriti | tdzl2003@gmail.com |
MIT



