/react-native-wechat-lib

🚀 WeChat login, share, favorite and payment for React-Native on iOS and Android

Primary LanguageObjective-CMIT LicenseMIT

React-Native-Wechat-Lib

[React Native] bridging library that integrates WeChat SDKs:

  • iOS SDK 1.8.6.1
  • Android SDK 5.5.6

前言

首先向各位声明,本库是在 react-native-wechat 基础上进行重写。

本库已经向 react-native-wechat 提交合并请求#526,但由于 react-native-wechat 所使用的 WeChat SDK 已经是几年前的版本,新 SDK 接口变动大,我修改的代码相当多,几乎重构了核心部分,导致合并需要耗费不小时间,再加上需要兼容正在使用旧版 SDK 的开发者,事情变得异常艰辛。

考虑到自身使用和其它开发者的需要,最终决定开一个新仓库,提供给新项目使用。

最后,感谢 yorkie 和各位开发者为 react-native-wechat 做出的贡献。

目录

安装

npm install react-native-wechat-lib --save
react-native link react-native-wechat-lib

起步

API文档

本库支持 TypeScript,使用 Promiseasync/await 来接收返回。

接口名称和参数尽量跟腾讯官网保持一致性,除了嵌套对象变成扁平对象,你可以直接查看腾讯文档来获得更多帮助。

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-lib';

WeChat.registerApp('appid', 'universalLink');

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() 获取API版本号

  • returns {String} Contains the result.

Get the WeChat SDK api version.

openWXApp() 打开微信

  • returns {Boolean}

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

ShareText(ShareTextMetadata) 分享文本

ShareTextMetadata

name type description
text String 分享文本
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareText({
  text: 'Text content.',
  scene: 0
})

ShareImage(ShareImageMetadata) 分享图片

ShareImageMetadata

name type description
imageUrl String 图片地址
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareImage({
  imageUrl: 'https://google.com/1.jpg',
  scene: 0
})

ShareMusic(ShareMusicMetadata) 分享音乐

ShareMusicMetadata

name type description
title String 标题
description String 描述
thumbImageUrl String 缩略图地址,本库会自动压缩到32KB
musicUrl String 音频网页的URL地址
musicLowBandUrl String 供低带宽环境下使用的音频网页URL地址
musicDataUrl String 音频数据的URL地址
musicLowBandDataUrl String 供低带宽环境下使用的音频数据URL地址
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareMusic({
  title: 'Good music.',
  musicUrl: 'https://google.com/music.mp3',
  thumbImageUrl: 'https://google.com/1.jpg',
  scene: 0
})

ShareVideo(ShareVideoMetadata) 分享视频

ShareVideoMetadata

name type description
title String 标题
description String 描述
thumbImageUrl String 缩略图地址,本库会自动压缩到32KB
videoUrl String 视频链接
videoLowBandUrl String 供低带宽的环境下使用的视频链接
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareVideo({
  title: 'Interesting video.',
  videoUrl: 'https://google.com/music.mp3',
  thumbImageUrl: 'https://google.com/1.jpg',
  scene: 0
})

ShareWebpage (ShareWebpageMetadata) 分享网页

ShareWebpageMetadata

name type description
title String 标题
description String 描述
thumbImageUrl String 缩略图地址,本库会自动压缩到32KB
webpageUrl String HTML 链接
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareWebpage({
  title: 'Interesting web.',
  videoUrl: 'https://google.com/music.mp3',
  thumbImageUrl: 'https://google.com/1.jpg',
  scene: 0
})

ShareMiniProgram(ShareMiniProgramMetadata) 分享小程序

ShareMiniProgram

name type description
title String 标题
description String 描述
thumbImageUrl String 缩略图地址,本库会自动压缩到32KB
userName String 小程序的 userName,填小程序原始id
path String 小程序的页面路径
hdImageUrl String 小程序新版本的预览图二进制数据,6.5.9及以上版本微信客户端支持
withShareTicket String 是否使用带shareTicket的分享
miniProgramType Number 小程序的类型,默认正式版,1.8.1及以上版本开发者工具包支持分享开发版和体验版小程序
webpageUrl String 兼容低版本的网页链接
scene Number 分享到, 0:会话 2:朋友圈 3:收藏

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.shareMiniProgram({
  title: 'Mini program.',
  userName: 'gh_d39d10000000',
  webpageUrl: 'https://google.com/show.html',
  thumbImageUrl: 'https://google.com/1.jpg',
  scene: 0
})

LaunchMiniProgram (LaunchMiniProgramMetadata) 跳到小程序

LaunchMiniProgramMetadata

name type description
userName String 填小程序原始id
miniProgramType Number 可选打开 开发版,体验版和正式版
path String 拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"

Return:

name type description
errCode Number 0 if authorization successed
errStr String Error message if any error occurred
import * as WeChat from 'react-native-wechat-lib';

WeChat.launchMiniProgram({
  userName: 'gh_d39d10000000',
  miniProgramType: 1
})

pay(payload) 支付

  • payload {Object} the payment data
    • partnerId {String} 商家向财付通申请的商家ID
    • prepayId {String} 预支付订单ID
    • nonceStr {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

License

MIT