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 的用于构建 ...
随机推荐
- 【爬虫入门01】我第一只由Reuests和BeautifulSoup4供养的Spider
[爬虫入门01]我第一只由Reuests和BeautifulSoup4供养的Spider 广东职业技术学院 欧浩源 1.引言 网络爬虫可以完成传统搜索引擎不能做的事情,利用爬虫程序在网络上取得数据 ...
- thinkphp5.0解决控制器驼峰命名时提示找不到类名
今天碰到了一个比较坑爹的问题,我的控制器的名字是用驼峰命名的,但是却给我报错,如下: 怎么解决呢? 看我的视图,同样是驼峰命名,此时只要将其改为auth_group这样的方式就可以了. 注意:url地 ...
- H5新手快速入门 简单布局
布局*{ margin: 0; padding: 0;}.quan{ width: 100%; height: 2000px; background: black url("../ima/b ...
- windows 本地构建hadoop-spark运行环境(hadoop-2.6, spark2.0)
下载hadoop http://hadoop.apache.org/releases.html --> http://mirrors.tuna.tsinghua.edu.cn/apache/ha ...
- bzoj 2243 [SDOI2011]染色(树链剖分+线段树合并)
[bzoj2243][SDOI2011]染色 2017年10月20日 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询 ...
- wpf GifBitmapDecoder 解析 gif 格式
在网上有很多图片都是gif,那么如何在 wpf 解析 gif? 本文告诉大家如何使用 GifBitmapDecoder 把gif分开为一张一张,获得他的信息. 如果需要把一个 gif 分开,使用的代码 ...
- RT-thread 利用Scons 工具编译提示python编码错误解决办法
错误信息: scons: Reading SConscript files ...UnicodeDecodeError: 'ascii' codec can't decode byte 0xbd in ...
- nodejs项目管理之supervisor||pm2||forever
supervisor 是开发环境用. forever 管理多个站点,每个站访问量不大,不需要监控. pm2 网站访问量比较大,需要完整的监控界面. supervisor 特点: 代码修改,实时重启 安 ...
- 基于FFMPEG的跨平台播放器实现
基于FFMPEG的跨平台播放器实现 一.背景介绍 FFmpeg是一款超级强大的开源多媒体编解码框架,提供了录制.转换以及流化音视频的完整解决方案,包含了libavcodec.libavformat等多 ...
- Pyhton编程(四)之基本数据类型-字符串详解
一:字符串是什么? 字符串是Python最常用的一种数据类型,虽然看似简单,但能够以不同的方式来使用它们. 字符串就是一系列的字符,在Python中,用引号括起来的都是字符串,其中的引号可以是单引号, ...