react native一键分享功能实现&原理和注意点(支持微信、qq、新浪微博等)
前言
目前使用一键分享比较主流的两个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一键分享功能实现&原理和注意点(支持微信、qq、新浪微博等)的更多相关文章
- React Native移动框架功能研究
React Native移动框架功能研究 此篇只研究React Native框架的功能. 一.React Natvie是什么 React Native是使用React(或者说JS)来开发原生APP的框 ...
- android一键分享功能不使用任何第三方sdk
在android中有自带的一键分享功能,不过它会把所有带分享的应用都找出来,如果我们只需要一些常见的分享应用,该如何做呢? 下面看我的效果图(横屏和竖屏自动适配): 接下来看我的调用(支持图片和文字分 ...
- 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能
在公司最近的一个项目中,需要实现一键分享功能,在这里我使用的是第三方平台ShareSDK,将使用经验与大家分享 先看效果图 主界面 分享界面 由于第一次使用,所以需要先进行新浪授权,授权界面 分享结果 ...
- Android 一键分享功能简单实现
import java.io.File;import java.util.ArrayList;import java.util.List; import android.content.Context ...
- 如何在自己的代码中实现分享视频文件或者是图片文件到微信 QQ微博 新浪微博等!!!
首先在文档第一句我先自嘲下 , 我是大傻逼, 弄了两天微信是视频分享,一直被说为啥跟系统的相册分享的不一样,尼玛!!! 这里来说正文,我这里不像多少太多,大家都是程序猿,具体的阔以看代码. 搞代码之前 ...
- React Native之微信分享(iOS Android)
React Native之微信分享(iOS Android) 在使用React Native开发项目的时候,基本都会使用到微信好友或者微信朋友圈分享功能吧,那么今天我就带大家实现以下RN微信好友以及朋 ...
- React Native微信分享 朋友圈分享 Android/iOS 通用
超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用 2016/06/16 | React Native技术文章 | Sky丶清| 暂无评论 | 1 ...
- React Native实现微信分享
(一)前言 现阶段大家在使用React Native开发项目的时候,基本都会使用到微信好友或者微信朋友圈分享功能吧,那么今天我就带大家实现以下RN微信好友以及朋友圈的分享功能. 刚创建的React N ...
- 使用React Native来撰写跨平台的App
React Native 是一个 JavaScript 的框架,用来撰写实时的.可原生呈现 iOS 和 Android 的应用.其是基于 React的,而 React 是 Facebook 的用于构建 ...
随机推荐
- MySQL(十四)之数据备份与还原
前言 上一篇分享了关于MySQL事务的知识,在我们数据库中最重要的就是数据了,所以数据的备份就显的特别的重要! 为什么要备份数据? 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大 ...
- visual studio 2015 warning MSB3246
在我们很高兴的按下 本地计算机运行 按钮,希望看到我们程序运行的时候,垃圾vs就告诉我们,你的程序出现了问题,问题就是: warning MSB3246: 解析的文件包含错误图像.无元数据或不可访问. ...
- JSP前后台数据交互
1.一般方法:在页面加载时载入数据 首先,新建一个包,在包内创建一个类,类实现接口Servlet-javax.servlet 然后,在web.xml文件里配置如下 <?xml version=& ...
- IO(Input&Output)流の介绍
1.导读 对于设备之间的流动(即写入数据或读出数据),Java专门用Java.io包进行操作.这些数据的流动便是我们所说的数据的输入输出流(IO流). 2.数据流的处理:字节流和字符流 数据的基本单位 ...
- Ubuntu16.04卸载opencv2.4.9并安装opencv3.2.0+contrib
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 需要用到opencv中的surf和sift算法,机器上只有opencv3.2,没有扩展包,于是 ...
- mybatis 参数为list时,校验list是否为空
校验objStatusList 是否为空 <if test="objStatusList != null and objStatusList.size() > 0 "& ...
- mac上使用crontab周期性执行python脚本
这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚 ...
- HDU 6113 度度熊的01世界
度度熊的01世界 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest H. Delete Them
H. Delete Them time limit per test 2 seconds memory limit per test 512 megabytes input standard inpu ...
- Entropy
Entropy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...