前言

目前使用一键分享比较主流的两个SDK:ShareSDK、友盟;

又因为友盟功能比较多且比较全,比如说友盟统计、友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要注意的点。

react native绑定SDK两种方案(一个原理):

  1.自己去要绑定的SDK官网下载SDK包,按照SDK安装指南分别在android/iOS上按步骤配置,然后在RN注册Package和Module实现RN和原生之间的通讯;

  2.使用别人已经写过的Package和Module+SDK本身的配置,直接拿到rn项目中用;

总结:可以看出来第二种其实是比较偷懒的方式,但是可以实现功能,而且Package和Module的书写几乎一样都是大同小异的代码(除了Module暴露调用方法的顺序不同之外),所以如果市面上已经有相应的绑定大可直接拿来使用。

一键分享实现方案

我们本文要使用的友盟分享库是:react-native-share

GitHub地址:https://github.com/songxiaoliang/react-native-share

配置详见上面GitHub里README部分,这里不在重复,本文重点要说的是注意事项。

注意事项(Android部分)

除了上文GitHub里面的10个步骤之后,接下来的配置也是必不可少的.

1.需要在app目录build.gradle文件dependencies里面添加如下配置:

dependencies {
...
//友盟分享
compile files('libs/weiboSDKCore_3.1.4.jar')
compile files('libs/wechat-sdk-android-with-mta-1.1.6.jar')
compile files('libs/umeng_social_tool.jar')
compile files('libs/umeng_social_net.jar')
compile files('libs/umeng_social_api.jar')
compile files('libs/SocialSDK_WeiXin_Full.jar')
compile files('libs/SocialSDK_Sina_Full.jar')
compile files('libs/SocialSDK_facebook.jar')
compile files('libs/SocialSDK_QQ_Full.jar')
compile files('libs/SocialSDK_alipay.jar')
compile files('libs/open_sdk_r5781.jar')
compile files('libs/libapshare.jar')
compile 'com.android.support:multidex:'
}

2.需要注意修改apshare、module、wxapi、WBShareActivity.java里面的包名改成自己项目的包名;

3.MainActivity.java需要添加引用:

import com.umeng.analytics.MobclickAgent;
import android.content.Intent;
import android.os.Bundle;
import com.umeng.socialize.UMShareAPI;

4.MainApplication.java需要添加引用:

import com.xxx.module.SharePackage;  //xxx为你的包名
import com.umeng.socialize.Config;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.UMShareAPI;

5.以上配置完毕,运行依然报错“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65935”

解决方案:

①.在项目的build.gradle文件的dependencies 节中添加分包设置:

dependencies {
...
compile 'com.android.support:multidex:'
...
}

②.通过在defaultConfig节中设置multiDexEnabled标签为true,开启multi-dexing支持.

defaultConfig {
...
multiDexEnabled true
...
}

react native一键分享功能实现amp;原理和注意点(支持微信、qq、新浪微博等)相关推荐

  1. 给网站加上一键分享功能

    如果你需要给你的网站上加上一个一键分享功能,那么可以试试一键分享组件Share.js. 一键分享到微博.QQ空间.QQ好友. 微信 .腾讯微博.豆瓣.Facebook.Twitter.Linkedin ...

  2. android一键分享功能不使用任何第三方sdk

    在android中有自带的一键分享功能,不过它会把所有带分享的应用都找出来,如果我们只需要一些常见的分享应用,该如何做呢? 下面看我的效果图(横屏和竖屏自动适配): 接下来看我的调用(支持图片和文字分 ...

  3. React Native移动框架功能研究

    React Native移动框架功能研究 此篇只研究React Native框架的功能. 一.React Natvie是什么 React Native是使用React(或者说JS)来开发原生APP的框 ...

  4. Android进阶之使用第三方平台ShareSDK实现新浪微博的一键分享功能

    http://www.it165.net/pro/html/201402/9510.html http://www.it165.net/pro/html/201402/9510.html http:/ ...

  5. React Native 集成分享第三方登录功能分享第三方登录模块开发(iOS)

    期待已久的新课上线啦!解锁React Native开发新姿势,一网打尽React Native最新与最热技术,点我Get!!! 在我们常用的App中经常会看到分享与第三方登录的功能,可以说分享与第三方 ...

  6. Android中实现一键分享功能

    在Android中开发中,我们会经常遇到使用一键分享的功能,今天我以使用第三方平台ShareSDK来实现一键分享向大家分享下具体的流程. 下面,我就以步骤顺序依次展示在自己的Android项目中如何实 ...

  7. 一键分享功能ShareSDK

    1.进去网站Mob官网下载AndroidSDK,选择你需要的功能. 2.解压后打开ShareSDK_User_Guide网页,根据提示完成分享功能的实现. 3.申请AppKey值需要先注册官网账号,通 ...

  8. 使用第三方平台 ShareSDK 实现新浪微博的一键分享功能

    http://software.intel.com/zh-cn/blogs/2014/03/02/android-sharesdk/?utm_campaign=CSDN&utm_source= ...

  9. 百度api一键分享功能

    先看效果: 首先绘制一个页面 div的class名字必须为bdsharebuttonbox <div class="bdsharebuttonbox" data-tag=&q ...

最新文章

  1. 823专业课计算机,辽宁科技大学823计算机专业基础综合(含数据结构、计算机组成原理、操作系统和计算机网络)考研复习经验...
  2. oracle hint push_pred,hints的push_pred应用-Oracle
  3. dll可以在linux下使用吗_无需虚拟技术,6步直接在Windows下使用Linux
  4. Condition总结-CountDownLatch
  5. Unity3D学习笔记之九为场景添加细节(二)
  6. .NET配置文件读写实例(附SosoftConfigHelper类)
  7. BootStrap布局案例
  8. 【Webcam设计】相机底层工作流程,编程模型
  9. access html导出,AccessToFile
  10. c语言输出最大的数ns流程图_怎么将100至200中全部的素数用NS流程 – 手机爱问...
  11. 眼血管分割matlab,视网膜血管分割matlab
  12. 字号与阿拉伯数字对应列表
  13. 中南大学计算机学院研究生录取分数线,中南大学研究生录取分数线
  14. CF1132D Stressful Training (binary search)(greedy)
  15. 1093. 大样本统计-正常统计
  16. IBM:电脑帝国的企业文化
  17. 【Android】通过命令行adb install 将apk下载到手机之中
  18. 送书 | 哈佛大学单细胞课程:笔记汇总前篇
  19. 实验报告:定义一个表示学生的类Student
  20. P2713(罗马游戏 可并堆模板)

热门文章

  1. 都2021年了,还不会使用GitHub创建、推送、拉取、克隆远程库、团队协作开发?
  2. Redis与MySQL双写一致性如何保证
  3. C++11新特性之泛型编程与模板
  4. 企业为什么要做SEO,它的重要性有哪些?
  5. 如何将对象拼接成get传值的形式
  6. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
  7. spark DAGScheduler、TaskSchedule、Executor执行task源码分析
  8. JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
  9. SQL调用C# dll(第一中DLL,没使用强名称密匙,默认是 safe)
  10. Oracle下的Databse,Instance,Schemas