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 的用于构建 ...
随机推荐
- Echarts数据可视化series-map地图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- 干了这杯Java之Vector
Vector实现了AbstractList抽象类和List接口,和ArrayList一样是基于Array存储的 Vector 是线程安全的,在大多数方法上存在synchronized关键字 //Vec ...
- java多线程编程题之连续打印abc的几种解法
一道编程题如下: 实例化三个线程,一个线程打印a,一个打印b,一个打印c,三个线程同时执行,要求打印出6个连着的abc 题目分析: 通过题意我们可以得出,本题需要我们使用三个线程,三个线程分别会打印6 ...
- webpack核心概念
一.webpack四个核心概念 1.入口[Entry] webpack将创建所有应用程序 依赖关系图表.图表的起点被称之为 入口起点.入口起点告诉webpack从哪里开始,并遵循着依赖关系图表知道打包 ...
- C语言 数组名不是指针
今天上计算机系统课的时候老师讲到了C中的聚合类型的数据结构.在解释数组名的时候说"数组名是一个指针,指向该数组的第一个元素",附上ppt(第二行): 我觉得这是不正确的,是一个常见 ...
- 容器与Docker简介(三)Docker相关术语——微软微服务电子书翻译系列
本节列出了在更加深入Docker之前应该熟悉的术语和定义. 有关详细的定义,请参阅Docker提供的术语表. 容器镜像(Container image):具有创建容器所需要的所有依赖和信息的包. 镜像 ...
- Java基础总结--方法(函数)
---函数的作用---实现特定功能的代码--是一种代码重用的方式---函数的格式---访问修饰符 返回值类型 函数名(参数列表){语句:} 参数列表包含参数的类型和参数名(参数列表要注意顺序)---关 ...
- java传值与传引用总结
基本数据类型 我们先来看一个代码 public class ParamTest { public static void main(String[] arge) { double percent = ...
- Linux系统挂载操作mount详解
在Linux系统中,文件系统不挂载是无法使用的.挂载,即是让文件系统在操作系统中可用.在Linux中使用mount命令来挂载文件系统,有永久性挂载和临时性挂载两种挂载方式. 1. 永久性挂载: 修改配 ...
- jQuery的区别:$().click()和$(document).on('click','要选择的元素',function(){})的不同
jQuery的出现,大大简化了对dom的操作,但是如果不是仔细阅读api和进行操作,就不知道其中最大的优点和使用方式.就拿$().click()和$(document).on('click','要选择 ...