微信开发react-native开源组件react-native-wechat学习
白羽 2019-05-23 来源 :网络 阅读 2621 评论 0

摘要:本文将带你了解微信开发react-native开源组件react-native-wechat学习,希望本文对大家学微信有所帮助。

    本文将带你了解微信开发react-native开源组件react-native-wechat学习,希望本文对大家学微信有所帮助。


微信开发react-native开源组件react-native-wechat学习



   
    由于最近工作的需要用到微信分享,于是我就找开源组件库(react-native-wechat),下面是具体的使用方法。
   
    一、进入到项目的目录中执行如下命令:
   
    $ npm install react-native-wechat --save
    二、IOS:打开你的Xcode工程
   
    2.1   从node_modules/react-native-wechat/ios中链接RCTWeChat到库文件中,不要忘记将它添加到""Buid   Phases""中(如下图所示。注:具体的可以参考facebook官网的方法//facebook.github.io/react-native/docs/linking-libraries-ios.html)
   
    2.2 添加一下库文件(Build Phase->Link Binary With   Libraries):SystemConfiguration.framework,CoreTelephony.framework   ,libsqlite3.0,libc++,libz 
   
    2.3添加app id (Targets->info->URL types)注:URL Schemes填写的是APP ID   需要去者平台注册。
   
    2.4为了适配IOS9需要在LSApplicationQueriesSchemes (Target-info-Custom IOS Target   Properties)添加微信为白名单。我们需要修改info.plist文件,
   
    然后添加如下的代码:
   
    LSApplicationQueriesSchemes           wechat    weixin        sinaweibohd    sinaweibo    sinaweibosso    weibosdk    weibosdk2.5        mqqapi    mqq      mqqOpensdkSSoLogin      mqqconnect      mqqopensdkdataline      mqqopensdkgrouptribeshare      mqqopensdkfriend      mqqopensdkapi      mqqopensdkapiV2      mqqopensdkapiV3      mqzoneopensdk    wtloginmqq    wtloginmqq2    mqqwpa      mqzone    mqzonev2    mqzoneshare    wtloginqzone    mqzonewx    mqzoneopensdkapiV2    mqzoneopensdkapi19    mqzoneopensdkapi    mqzoneopensdk        alipay    alipayshare
    2.5因为需要使用LinkingIOS,还需要在AppDelegate.m中添加如下代码:
   
    #import   ""../Libraries/LinkingIOS/RCTLinkingManager.h""@implementation   AppDelegate- (BOOL)application:(UIApplication *)application openURL:(NSURL   *)url sourceApplication:(NSString *)sourceApplication   annotation:(id)annotation {  return   [RCTLinkingManager application:application openURL:url   sourceApplication:sourceApplication annotation:annotation];}
    三、API文档
   
    3.1 registerApp(appid)
     {string} appid  你的appid
     return {promise} 返回一个promise对象
    3.2 registerAppWithDescription(appid,appdesc) ->仅支持IOS
     {string} appid  (同上)
     {String} appdesc 你的app的说明
     return {promise}
    3.3 isWXAppInstalled() 检查微信是否初始化
    3.4 isWXAppSupportApi()检查微信是否支持url
    3.5 getApiVersion()      获得微信SDK的版本
    3.6 openWXApp()        打开微信app
    3.7 sendAuthRequest([scope[,state]])   发送默认请求,scope:登录时所申请的权限默认为get_simple_userinfo.需要
    多个权限的时候以逗号分隔开。
    3.8  shareToTimeline(data) 分享信息到朋友圈
   
          {Object } data 包含以下发送信息
   
           {string} thumbImage  可以是一个uri或者资源id
   
           {string} type  信息的类型,可以是   {news|text|imageUrl|imageFile|imageResource|video|audio|file}
   
           {string} webpageUrl  如果类型是news,分享一个网页链接
   
           {string}  imageUrl      如果类型是image,提供一个远程的图片链接
   
           {string}  videoUrl       如果类型是video,提供一个视频
   
           {string} musicUrl        如果是audio,提供一个音乐
   
           {string} filePath          提供本地文件
   
    以下例子需要'react-native-wechat'和'react-native-fs'组件
   
    import * as WeChat from 'react-native-wechat';import fs from   'react-native-fs';var resolveAssetSource = require('resolveAssetSource'); //   along with Image component// Code example to share text message:try {    var result = await  WeChat.shareToTimeline({type: 'text',   description: 'I\'m Wechat, :)'});      console.log('share text message to time line successful',   result);}catch (e) {      console.log('share text message to time line failed', e);}// 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   {    var result = await   WeChat.shareToTimeline({        type:   'imageUrl',        title: 'web image',        description: 'share web image to time   line',        mediaTagName: 'email   signature',        messageAction:   undefined,        messageExt:   undefined,        imageUrl:   '//www.ncloud.hk/email-signature-262x100.png'    });      console.log('share image url to time line successful', result);}catch   (e) {    console.log('share image url   to time line failed', e);}// Code example to share image file:try {    var rootPath =   fs.DocumentDirectoryPath;    var   savePath = rootPath + '/email-signature-262x100.png'; // like   /var/mobile/Containers/Data/Application/B1308E13-35F1-41AB-A20D-3117BE8EE8FE/Documents/email-signature-262x100.png    await   fs.downloadFile('//www.ncloud.hk/email-signature-262x100.png',   savePath);    var 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: savePath    });      console.log('share image file to time line successful', result);}catch   (e) {    console.log('share image file   to time line failed', e);}// Code example to share image resource:try {    var imageResource =   require('./email-signature-262x100.png');      var 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) {    console.log('share resource image to time   line failed', e);}
      3.9 shareToSession(data)   用法和shareToTimeline用法相似,发送信息给一个朋友或者群组
   
      3.10   addListener(eventType,listener[,context]) 当事件触发时,会调用一个监听器,返回一个对象
   
      3.11  once(eventType,listener[,context])   用法和addListener相似
   
      3.12  removeAllListener()   删除所有的注册监听器   

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程