React-Native-Wechat
React Native bridging library that integrates WeChat SDKs:
react-native-wechat has the following tracking data in the open source world:
NPM | Dependency | Downloads | Build |
---|
| | | |
Table of Contents
Getting Started
API Documentation
react-native-wechat uses Promises, therefore you can use Promise
or async/await
to manage your dataflow.
registerApp(appid)
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 * as WeChat from 'react-native-wechat';
WeChat.registerApp('appid');
registerAppWithDescription(appid, description)
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.
isWXAppInstalled()
- returns {Boolean} if WeChat is installed.
Check if the WeChat app is installed on the device.
isWXAppSupportApi()
- returns {Boolean} Contains the result.
Check if wechat support open url.
getApiVersion()
- returns {String} Contains the result.
Get the WeChat SDK api version.
openWXApp()
Open the WeChat app from your application.
sendAuthRequest([scope[, state]])
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 |
class ShareMetadata
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 equals news
. The webpage link to share.imageUrl
{String} Provide a remote image if type equals image
.videoUrl
{String} Provide a remote video if type equals video
.musicUrl
{String} Provide a remote music if type equals audio
.filePath
{String} Provide a local file if type equals file
.fileExtension
{String} Provide the file type if type equals file
.
shareToTimeline(message)
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 * as WeChat from 'react-native-wechat';
import fs from 'react-native-fs';
let resolveAssetSource = require('resolveAssetSource');
try {
let result = await WeChat.shareToTimeline({
type: 'text',
description: 'hello, wechat'
});
console.log('share text message to time line successful:', result);
} catch (e) {
if (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
try {
let result = await WeChat.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 (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
try {
let rootPath = fs.DocumentDirectoryPath;
let savePath = rootPath + '/email-signature-262x100.png';
console.log(savePath);
await fs.downloadFile('http://www.ncloud.hk/email-signature-262x100.png', savePath);
let result = await WeChat.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
});
console.log('share image file to time line successful:', result);
} catch (e) {
if (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
try {
let imageResource = require('./email-signature-262x100.png');
let result = await WeChat.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 (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
try {
let rootPath = fs.DocumentDirectoryPath;
let fileName = 'signature_method.doc';
let savePath = rootPath + '/' + fileName;
await fs.downloadFile('https://open.weixin.qq.com/zh_CN/htmledition/res/assets/signature_method.doc', savePath);
let result = await WeChat.shareToSession({
type: 'file',
title: fileName,
description: '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 (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
try {
let rootPath = fs.ExternalDirectoryPath;
let fileName = 'signature_method.doc';
let savePath = rootPath + '/' + fileName;
await fs.downloadFile('https://open.weixin.qq.com/zh_CN/htmledition/res/assets/signature_method.doc', savePath);
let result = await WeChat.shareToSession({
type: 'file',
title: fileName,
description: '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 (e instanceof WeChat.WechatError) {
console.error(e.stack);
} else {
throw e;
}
}
shareToSession(message)
message
{ShareMetadata} This object saves the metadata for sharing- returns {Object}
Similar to shareToTimeline
but sends the message to a friend or chat group.
pay(payload)
payload
{Object} the payment data
partnerId
{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 |
Installation
$ npm install react-native-wechat --save
Partners
React 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.
IRC
Tutorials
Who's using it
Authors
License
MIT