2.4.3 • Published 2 years ago

react-native-mwechat v2.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

React-Native-Mwechat

npm version

微信

React Native bridging library that integrates WeChat SDKs:

  • iOS SDK 1.9.2
  • Android SDK 6.8.0

前言

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

由于 react-native-wechat-lib 所使用的 WeChat SDK 已经是几年前的版本,考虑到自身使用和其它开发者的需要,最终决定开一个新仓库,提供给新项目使用。

最后

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

感谢 little-snow-fox 和各位开发者为 react-native-wechat-lib 做出的贡献。

目录

安装

npm install react-native-mwechat --save
react-native link react-native-mwechat

起步

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

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:

fieldtypedescription
errCodeNumberError Code
errStrStringError message if any error occurred
openIdString
codeStringAuthorization code
urlStringThe URL string
langStringThe user language
countryStringThe user country

ShareText(ShareTextMetadata) 分享文本

ShareTextMetadata

nametypedescription
textString分享文本
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

ShareImage(ShareImageMetadata) 分享图片

ShareImageMetadata

nametypedescription
imageUrlString图片地址
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

ShareLocalImage(ShareImageMetadata) 分享本地图片

ShareImageMetadata

nametypedescription
imageUrlString图片地址
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

WeChat.ShareLocalImage({
  imageUrl: '/sdcard/test.png',
  scene: 0
})

注意:图片路径必须在一个 Public 目录里,例如 Download 目录,否则微信没权限读取这张图片,导致图片发不出去。

ShareMusic(ShareMusicMetadata) 分享音乐

ShareMusicMetadata

nametypedescription
titleString标题
descriptionString描述
thumbImageUrlString缩略图地址,本库会自动压缩到32KB
musicUrlString音频网页的URL地址
musicLowBandUrlString供低带宽环境下使用的音频网页URL地址
musicDataUrlString音频数据的URL地址
musicLowBandDataUrlString供低带宽环境下使用的音频数据URL地址
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

ShareVideo(ShareVideoMetadata) 分享视频

ShareVideoMetadata

nametypedescription
titleString标题
descriptionString描述
thumbImageUrlString缩略图地址,本库会自动压缩到32KB
videoUrlString视频链接
videoLowBandUrlString供低带宽的环境下使用的视频链接
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

ShareWebpage (ShareWebpageMetadata) 分享网页

ShareWebpageMetadata

nametypedescription
titleString标题
descriptionString描述
thumbImageUrlString缩略图地址,本库会自动压缩到32KB
webpageUrlStringHTML 链接
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

ShareMiniProgram(ShareMiniProgramMetadata) 分享小程序

ShareMiniProgram

nametypedescription
titleString标题
descriptionString描述
thumbImageUrlString缩略图地址,本库会自动压缩到32KB
userNameString小程序的 userName,填小程序原始id
pathString小程序的页面路径
hdImageUrlString小程序新版本的预览图二进制数据,6.5.9及以上版本微信客户端支持
withShareTicketString是否使用带shareTicket的分享
miniProgramTypeNumber小程序的类型,默认正式版,1.8.1及以上版本开发者工具包支持分享开发版和体验版小程序
webpageUrlString兼容低版本的网页链接
sceneNumber分享到, 0:会话 1:朋友圈 2:收藏

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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

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

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

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:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred

subscribeMessage(SubscribeMessageMetadata) 一次性订阅消息

  • returns {Object}
nametypedescription
sceneNumber重定向后会带上 scene 参数,开发者可以填 0-10000 的整形值,用来标识订阅场值
templateIdString订阅消息模板 ID,在微信开放平台提交应用审核通过后获得
reservedString用于保持请求和回调的状态,授权请后原样带回给第三方。该参数可用于防止 csrf 攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加 session 进行校验,开发者可以填写 a-zA-Z0-9 的参数值,最多 128 字节,要求做 urlencode

openCustomerServiceChat (WXOpenCustomerServiceChat) 拉起微信客服

nametypedescription
corpIdString关联的企业id
urlString客服url

Return:

nametypedescription
errCodeNumber0 if authorization successed
errStrStringError message if any error occurred
import * as WeChat from 'react-native-mwechat';

WeChat.openCustomerServiceChat({
  corpId: 'wx123432324',
  url: 'https://work.weixin.qq.com/kfid/kfc/123123123'
})

handleLaunchAppReq 获取启动onReq信息

为了解决微信唤醒App时原生端先触发,但是ReactJs还未准备好,所以以下项目配置信息会缓存启动的时的数据,等调用handleLaunchAppReq时触发WeChat_Req

此方法会触发模块的WeChat_Req,所以在调用此方法之前需要添加WeChat_Req监听

import * as WeChat from 'react-native-mwechat';

WeChat.registerApp(config.wechat.appID, config.wechat.universalLink); //需要调用
let _wechatReq = DeviceEventEmitter.addListener('WeChat_Req', req => {
  console.log(JSON.stringify(req));
});
WeChat.handleLaunchAppReq();

_wechatReq?.remove?.(); //销毁时记得移除监听

License

MIT

2.3.0

2 years ago

2.4.1

2 years ago

2.4.0

2 years ago

2.4.3

2 years ago

2.4.2

2 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.0

3 years ago