接着上篇顺便分享一篇自己使用 ShareSDK 的笔记,上篇我们集成了 SMSSDK 完成了短信接收验证码的功能,请参考Mob 之 短信验证集成 SMSSDK,如何在项目已经集成 SMSSDK 的情况下集成 ShareSDk 到项目中,上一篇中我们集成 SMSSDK 使用的是导入 jar 包的形式,这里我们使用创建 module 的方式引入 ShareSDk,主要内容如下:

  1. 下载ShareSDK
  2. 引入 ShareSDK
  3. 创建 MainLibs Module
  4. 创建 OneKeyShare Module
  5. 在项目中引入 Module
  6. 配置权限
  7. 配置 Application
  8. 启用 ShareSDK

下载 ShareSDk

官网下载地址:ShareSDK,下载的时候选中要分享的平台,如下图所示:

下载的 ShareSDk 解压缩如下,这里下载的版本是 ShareSDK-Android-3.0.0 ,如下图所示:

引入 ShareSDK

首先,复制 ShareSDk 中的 ShareSDK.xml 文件到项目中的 assets 目录下,

这里使用引入 module 的方式引入 ShareSDk,ShareSDK 里面主要引入如下两个 Libs,如下图所示:



下面演示一下 Module的创建过程:

创建 MainLibs Module

  1. 在新建的项目中创建一个 Android Library,如下图所示:

  2. 删除新创建的 Library 中 main 下面的所有文件,及 java、res两个文件夹和 AndroidManifest.xml 文件,如下图所示:

  3. 复制要引入的 MainLibs 中的 res 、 AndroidMainfest.xml 、 libs(里面的jar) 到对应的文件夹,如下图所示:



    导入 mainLibs 中结构如下:



此时,这个 module 就创建好了,这里使用 ShareSDK 提供的分享页面,故还需引入 OneKeyShare。

创建 OneKeyShare Module

创建 Module 的过程和上述一样,注意的是多了一个 src ,里面是要使用的 java 文件,所以必须也得引用,如下图所示:

将 src 文件夹复制到 main下面即可,build 之后如果不出错,说明 Module 创建成功了,下面根据依赖关系一如对应的 Module 即可。

在项目中引入 Module

这里面 OnKeyShareLibs 依赖 MainLibs ,只需 app 依赖 OnkeyShareLibs 即可,这里演示 OnKeyShareLibs 如何依赖 MainLibs,如下图所示:

然后,同样的方式 app 依赖 OnKeyShareLibs 即可。

配置权限

这里之前配置过 SMSSDK ,只需补充缺少的权限即可,下面是同时集成了 SMSSDK 和 ShareSDK 所需的全部权限,如下:

<!-- 添加必要的权限 -->
<!--SMS SDK-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--ShareSDK-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

配置 Application

如果之前配置过 SMSSDK ,那么 MobUIShell 是配置过的,只需添加缺少的 IntentFilter ,集成 SMSSDK 和 ShareSDK 可共用 MobUIShell ,如下:

<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<data android:scheme="tencent100371282" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter> <!-- 调用新浪原生SDK,需要注册的回调activity -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter> </activity>

如果您的项目集微信或者微信朋友圈,请查看AndroidManifest.xml配置文件里的package路径,需要在package目录下创建wxapi目录再放置WXEntryActivity。 没有此activity在微信分享后回调会检查是否有此activity,没有将会报错:

<activity
android:name=".yxapi.YXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />

具体请参考:Android ShareSDK完整的集成文档

启用 SDK

通过 AndroidManifest.xml
  1. 在 Application 节点下添加以下属性:
android:name="com.mob.MobApplication"
  1. 在 Application 标签下添加 meta 参数:
<!-- 通过AndroidManifest配置AppKey和AppSecret,如果你选择通过代码配置,则不需要配置以下meta-data -->
<meta-data android:name="Mob-AppKey" android:value="你的AppKey"/>
<meta-data android:name="Mob-AppSecret" android:value="你的AppSecret"/>
代码配置
// 通过代码注册你的AppKey和AppSecret
MobSDK.init(context, "你的AppKey", "你的AppSecret");

上述两种方式,只使用其中一种即可初始化 ShareSDK 了。

调用分享界面

private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(getString(R.string.share));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn"); // 启动分享GUI
oks.show(this);
}

本文主要记录了如何以 module 的方式引入 第三方 SDK 以及页面的分享调用。

可以选择关注微信公众号:jzman-blog 获取最新更新,一起交流学习!

Mob之社会化分享集成ShareSDK的更多相关文章

  1. ShareSDK 社会化分享 集成步骤

    第一步 :获取ShareSDK 官网:http://www.mob.com 完整的集成文档:http://wiki.mob.com/android-sharesdk%E5%AE%8C%E6%95%B4 ...

  2. 在Android Studio中使用shareSDK进行社会化分享(图文教程)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. iOS开发- 三步快速集成社交化分享工具ShareSDK

    1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享. 想要集成社交会分享,我们可以使 ...

  4. iOS- 三步快速集成社交化分享工具ShareSDK

    http://www.cnblogs.com/qingche/p/3727559.html 1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司 ...

  5. Android集成友盟社会化分享功能

    1.  产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...

  6. [Xcode 实际操作]八、网络与多线程-(25)实现ShareSdk的社会化分享功能

    目录:[Swift]Xcode实际操作 完成开发包的安装和配置之后,本文将演示社会化分享功能的具体开发步骤. 在项目导航区,打开并编辑程序代理文件[AppDelegate.swift] import ...

  7. QF——iOS第三方登录和社会化分享

    QQ登录的流程: 1.下载SDK,并添加到项目中: 2.添加SDK需要的依赖库,以及配置文件: 3.重写APPDelegate的方法handleOpenURL和openURL: 4.实现Tencent ...

  8. Android社会化分享功能的实现步骤

    众所周知,互联网是一个资源共享的地方,在网络上,我们可以分享我们所有认为好的资源.而随着互联网信息爆发式的增长,我们习惯了一键分享功能,比如:微博分享.微信分享.QQ空间分享.人人网分享等等.由此可见 ...

  9. iOS社会化分享(干货)

    一.苹果原生集成的社会化分享 1.哪些平台 (1)Twitter (2)FaceBook (3)Flickr (4)Vimeo (5)新浪微博  :iOS6 (6)腾讯微博 : iOS7 2.框架 : ...

随机推荐

  1. leetcode 209 3 滑动窗口

    class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { ,r=-; //由于数组是[]区间, ...

  2. 一起了解 .Net Foundation 项目 No.14

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. .NET Core .NE ...

  3. 【译文连载】 理解Istio服务网格(第七章 安全)

    全书目录 第一章 概述 第二章 安装 第三章 流控 第四章 服务弹性 第五章 混沌测试 第六章 可观测性 本文目录 第7章 安全 7.1 身份认证 7.1.1 Kubernetes上的Istio的身份 ...

  4. 关于使用fastjson出现的问题:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 1, fastjson-version 1.2.44

    先说下需求:是从redis中根据keys批量获取数据集合,再通过fastjson转为对象集合 代码如下: 在postman测试后,出现错误如下: 刚开始以为是使用fstjson方法不对,后面先通过打断 ...

  5. angular - collapse--TemplateRef

    用的ant  collapse组件 需要自定义Header 请忽略前面的dw... 主要是TemplateRef<void> 查了半天.可以实现效果,直接上代码,我也不懂为什么 反正实现了 ...

  6. ES6引入的Reflect对象目的何在?

    Reflect对象其实就是为了取代Object对象.取代原因有一下几点: 1)Object对象的一些内部方法放在了Reflect上面,比如:Object.defineProperty.主要是优化了语言 ...

  7. 基于VR三维全景的虚拟展馆展览实现

    VR三维全景虚拟现实技术的应用,能够通过全方位互动式来还原真实场景,令人产生一种身临其境的感觉,由于三维全景虚拟现实技术具有一定应用优势,其在企业与院校展示.建筑规划展示.酒店宾馆展示等方面都逐步得到 ...

  8. SpringBoot内置的各种Starter是怎样构建的?--SpringBoot源码(六)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 温故而知新 本篇接 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五) 温 ...

  9. airtest的使用(作用类似于appium)

    1.安装 下载免安装版本:http://airtest.netease.com/ 文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/in ...

  10. 《自拍教程45》Python_adb实时监控Logcat日志

    接上一篇:adb命令_一键截取logcat日志, 有一天, 系统稳定性开发负责人找到我,希望我能在跑android 系统monkey的时候, 实时监控logcat的输出,如果一旦发现"jav ...