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 
    ... 
}

 



本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/p/7884997.html,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
监控 算法 测试技术
即时通讯技术文集(第45期):微信、QQ技术精华合集(Part2) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第45 期。
35 3
|
2月前
|
存储 编解码 监控
即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第44 期。
28 2
|
3月前
|
存储 前端开发 测试技术
React Hooks 的工作原理
【10月更文挑战第1天】
|
5月前
|
前端开发 算法 JavaScript
React原理之Diff算法
【8月更文挑战第24天】
QQ,微信 消息轰炸
QQ,微信 消息轰炸
|
4月前
|
API
电脑上控制所有软件,比如说微信自动发消息,QQ
电脑上控制所有软件,比如说微信自动发消息,QQ
|
5月前
|
前端开发 JavaScript 算法
如何学习react原理
【8月更文挑战第9天】 如何学习react原理
51 6
|
5月前
|
开发者 安全 UED
JSF事件监听器:解锁动态界面的秘密武器,你真的知道如何驾驭它吗?
【8月更文挑战第31天】在构建动态用户界面时,事件监听器是实现组件间通信和响应用户操作的关键机制。JavaServer Faces (JSF) 提供了完整的事件模型,通过自定义事件监听器扩展组件行为。本文详细介绍如何在 JSF 应用中创建和使用事件监听器,提升应用的交互性和响应能力。
45 0
|
5月前
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
52 0
|
5月前
|
缓存 JavaScript 前端开发
【React生态进阶】React与Redux完美结合:从原理到实践全面解析构建大规模应用的最佳策略与技巧分享!
【8月更文挑战第31天】React 与 Redux 的结合解决了复杂状态管理的问题,提升了应用性能。本文详细介绍了在 React 应用中引入 Redux 的原因、步骤及最佳实践,包括安装配置、状态管理、性能优化等多方面内容,并提供了代码示例,帮助你构建高性能、易维护的大规模应用。
75 0