Android 分享小结

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、微信 分享
  • 三、 QQ 、QQ空间(Qzone) 分享
  • 四、新浪微博
  • 五、钉钉
  • 六、支付宝
  • 七、企业微信
  • 八、聚合分享平台
  • 九、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习,温故知新。

鉴于前阵子有人问到分享相关的功能,说不知道在哪里注册,本文做一个收集整理。

本文主要介绍QQ、微信、新浪微博、支付宝、钉钉等几个国内主流三方分享平台,以及一些聚合分享平台。

二、微信 分享

微信开发平台
Android接入指南

  1. 注册 > 获取应用APPID
  2. 接入sdk

在build.gradle中添加

dependencies {api 'com.tencent.mm.opensdk:wechat-sdk-android:+'
}

项目的根 build.gradle 文件中,添加如下代码

buildscript {repositories {jcenter()       // 原有 jCenter 引用可继续保留mavenCentral()}
}allprojects {repositories {jcenter()      // 原有 jCenter 引用可继续保留mavenCentral()}
}

配置AndroidManifest


  1. 接收微信的请求及返回值

在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity


public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI api;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, CorePackageConfig.APPINFO.WEIXIN_APPID, false);try {Intent intent = getIntent();api.handleIntent(intent, this);} catch (Exception e) {}}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {// 微信发送请求到第三方应用时,会回调到该方法}@Overridepublic void onResp(BaseResp baseResp) {}}

mani

<activityandroid:name=".wxapi.WXEntryActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:exported="true"android:taskAffinity="填写你的包名"android:launchMode="singleTask">
</activity>

添加混淆

  1. 调试
private final IWXAPI iwxapi;/*** 分享文本*/@Overridepublic void shareText(Activity activity, Entity Entity, ShareListener listener) {String shareText = Entity.getDesc();if (TextUtil.isEmpty(shareText)) {return;}WXTextObject textObj = new WXTextObject();textObj.text = shareText;WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = textObj;msg.description = shareText;SendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction("text");req.message = msg;req.scene = getSendScene(Entity.getShare_type());iwxapi.sendReq(req);addOnStarListener(listener);}

三、 QQ 、QQ空间(Qzone) 分享

QQ互联官网
文档资料

  1. 注册 > 获取应用APPID
  2. 下载sdk
  3. 接入sdk
    将下载好的 open_sdk_xxx_lite.jar 拷贝到 lib目录下

在build.gradle中添加

dependencies {implementation fileTree(dir: 'libs', include: '*.jar')
}

配置AndroidManifest

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><application><activityandroid:name="com.tencent.tauth.AuthActivity"android:noHistory="true"android:launchMode="singleTask" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent你的AppId" /></intent-filter></activity>
<activityandroid:name="com.tencent.connect.common.AssistActivity"android:configChanges="orientation|keyboardHidden"android:screenOrientation="behind" android:theme="@android:style/Theme.Translucent.NoTitleBar" /><application>
  1. 调试
public class QQShareMediaAction {private final Tencent mTencent;public QQShareMediaAction(Activity activity) {mTencent = Tencent.createInstance(qqAppId(), activity.getApplicationContext(), "");}/*** 分享文本* QQ不支持分享纯文本*/public void shareText(Activity activity, ShareEntity ShareEntity, ShareManager.CustomShareListener listener) {shareWeb(activity, ShareEntity, listener);}/*** 分享图片* 只支持本地图片*/public void shareImage(Activity activity, ShareEntity ShareEntity, ShareManager.CustomShareListener listener) {String shareImgUrl = ShareEntity.getImg_url();if (ShareTextUtil.isEmpty(shareImgUrl) || !limitSize(ShareEntity.getImg_url(), listener)) {return;}Bundle params = new Bundle();params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE);params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, shareImgUrl);mTencent.shareToQQ(activity, params, listener);addOnStarListener(listener);}}

四、新浪微博

登录 新浪微博开放平台

移动客户端接入说明

Android SDK文档

授权回调页、取消授权回调页设置在应用信息—>高级信息,iOS应用具体位置参考下图注意这里的授权回调页需要和代码中的redirectURL参数保持一致bundle ID设置注意和工程保持一致

五、钉钉

登录 钉钉开放平台

钉钉分享介绍

六、支付宝

支付宝开放平台

使用支付宝账号登录,注册APP,点击应用 > 在功能信息中添加分享功能 > 最后申请上线审核,通过即可

七、企业微信

企业微信官方平台

要使用企业微信分享功能模块,需要先在企业微信官方平台注册企业账号,并建立iOS或者安卓端应用,启用 “企业微信授权登录” 接口

八、聚合分享平台

如umeng,极光等一些国内聚合的分享。

九、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

ddd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/214049.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python安装与工具PyCharm

摘要&#xff1a; 周末闲来无事学习一下python&#xff01;不是你菜鸡&#xff0c;只不过是对手太强了&#xff01;所以你要不断努力&#xff0c;去追求更高的未来&#xff01;下面先了解python与环境的安装与工具的配置&#xff01; python安装&#xff1a; 官网 进入官网下载…

iOS分段控件UISegmentedControl使用

在故事板中添加UISegmentedControl 具体添加步聚如下: 选择Xcode的View菜单下的Show Library (或者Shift+Common+L) 打开控件库如下 在控件库中输入seg搜索控件,在出现Segmented Control后,将其拖到View Controller Scene中 到这里,添加分段控件UI已完成, 接下来将控件与变量…

Qt/C++视频监控拉流显示/各种rtsp/rtmp/http视频流/摄像头采集/视频监控回放/录像存储

一、前言 本视频播放组件陆陆续续写了6年多&#xff0c;一直在持续更新迭代&#xff0c;视频监控行业客户端软件开发首要需求就是拉流显示&#xff0c;比如给定一个rtsp视频流地址&#xff0c;你需要在软件上显示实时画面&#xff0c;其次就是录像保存&#xff0c;再次就是一些…

HarmonyOS--ArkTS(1)--基本语法(1)

目录 基本语法概述 声明式UI描述 自定义组件 创建自定义组件 自定义组件的结构--struct &#xff0c;Component&#xff0c;build()函数 生命周期 基本语法概述 装饰器&#xff1a; 用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊的含义。如上述示例中Entry、C…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”

接续上一章节&#xff0c;我们把开发环境架设好之后&#xff0c;此章节叙述如何建立 AWS IoT 环境&#xff0c;请务必已经有 AWS Account&#xff0c;申请 AWS Account 之流程将不在此说明。 III-1. 登入AWS IoT&#xff0c; 在“管理”>“所有装置”>“实物”下点击“建…

Avalonia中如何将View事件映射到ViewModel层

前言 前面的文章里面我们有介绍在Wpf中如何在View层将事件映射到ViewModel层的文章&#xff0c;传送门&#xff0c;既然WPF和Avalonia是两套不同的前端框架&#xff0c;那么WPF里面实现模式肯定在这边就用不了&#xff0c;本篇我们将分享一下如何在Avalonia前端框架下面将事件…

【React Hooks】=> useId()

相比较使用全局变量 作为唯一 ID 和直接使用 useId 是有区别的。 官方解释如下&#xff1a; 如果是将 useId 作为 id 的情况下&#xff0c;是如下的形式 也就是说你使用了 useId 作为唯一 ID 那么在你删除数组某个元素之后不会导致某个 ID 被重复使用&#xff0c;如果使用的全…

分布式环境下的session 共享-基于spring-session组件和Redis实现

1、问题概述 不是所有的项目都是单机模式的&#xff0c;当一个项目服务的局域比较广&#xff0c;用户体量比较大&#xff0c;数据量较大的时候&#xff0c;我们都会将项目部署到多台服务器上&#xff0c;这些个服务器都是分布在不同的区域&#xff0c;这样实现了项目的负载和并…

工作实践中如何使用ThreadLocal?

主要作用 多线程问题主要是多个线程共享一个对象导致的&#xff0c;我们不让他共享就行了&#xff0c;每个线程保存一份自己的对象&#xff0c;自己玩自己的对象&#xff0c;就不会出现线程问题了。 ThreadLocal这个作用就是让线程自己独立保存一份自己的变量副本。每个线程都…

自动驾驶学习笔记(十六)——目标跟踪

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 匹配关联 轨迹记录 状态预测 总结 前…

《Kafka权威指南》读书笔记

《Kafka权威指南》第一、三、四、六章&#xff0c;是重点。可以多看看。 一、 Kafka的组成 kafka是一个发布与订阅消息系统消息&#xff1a;kafka的数据单元称为"消息"。可以把消息看成是数据库中的一个"数据行"。 消息的key&#xff1a;为key生成一个一…

【工厂方法】设计模式项目实践

前言 以采集数据处理逻辑为例&#xff0c;数据采集分为不同种类如&#xff1a;MQTT、MODBUS、HTTP等&#xff0c;不同的采集数据有不同的解析处理逻辑。但总体解析处理步骤是固定的。可以使用工厂方法设计模式简化代码&#xff0c;让代码变得更加优雅。 代码实践 抽象类 总体…

蒙特霍尔问题(选择三扇门后的车与羊)及其贝叶斯定理数学解释

1. 蒙特霍尔问题 有一个美国电视游戏节目叫做“Let’s Make a Deal”&#xff0c;游戏中参赛者将面对3扇关闭的门&#xff0c;其中一扇门背后有一辆汽车&#xff0c;另外两扇门后是山羊&#xff0c;参赛者如果能猜中哪一扇门后是汽车&#xff0c;就可以得到它。 通常&#xf…

基于PicGo实现Typora图片自动上传GitHub

文章目录 一. 引言二. 原理三. 配置3.1 GitHub 设置3.2 下载配置 PicGo3.3 配置 Typora3.4 使用 一. 引言 Typora是一款非常好的笔记软件&#xff0c;但是有一个比较不好的地方&#xff1a;默认图片是存放在本地缓存中。这就会导致文件夹一旦被误删或电脑系统重装而忘记备份文件…

爬虫解析-jsonpath (六)

jsonpath只能解析本地文件 jsonpath的使用&#xff1a; obj json.load(open(.json文件,r,encodingutf-8))place_name jsonpath.jsonpath(obj, json语法) 目录 1.安装jsonpath 2.Xpath和jsonpath的语法对比 练习&#xff1a;使用jsonpath解析JSON文件 3.使用jsonpath抓取…

openEuler JDK21 部署 Zookeeper 集群

zookeeper-jdk21 操作系统&#xff1a;openEuler JDK&#xff1a;21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…

机器学习实验五:集成学习

系列文章目录 机器学习实验一&#xff1a;线性回归机器学习实验二&#xff1a;决策树模型机器学习实验三&#xff1a;支持向量机模型机器学习实验四&#xff1a;贝叶斯分类器机器学习实验五&#xff1a;集成学习机器学习实验六&#xff1a;聚类 文章目录 系列文章目录一、实验…

imazing正在查找最新的apple mobile device组件

​ Apple Mobile Device是macOS的一个组件&#xff0c;它允许您在Mac上与iOS设备进行无缝连接和通信。因此&#xff0c;无法直接在苹果设备上下载和安装Apple Mobile Device&#xff0c;需要借助管理工具进行下载安装后启动。 如果您需要与iOS设备进行通信和同步&#xff0c;…

流量异常-挂马造成百度收录异常关键词之解决方案(虚拟主机)

一.异常现象&#xff1a;流量突然暴涨&#xff0c;达到平时流量几倍乃至几十倍&#xff0c;大多数情况下因流量超标网站被停止。 二.排查原因&#xff1a; 1.首先分析web日志&#xff1a;访问量明显的成倍、几十倍的增加&#xff1b;访问页面不同&#xff1b;访问IP分散并不固…

Linux常见压缩指令小结

为什么需要压缩技术 我们都知道文件是以byte作为单位的&#xff0c;如果我们的文件仅仅在低位占一个1 0000 0001这种情况我们完全可以压缩一下&#xff0c;将高位的0全部抹掉即可。 如上所说是一种压缩技术&#xff0c;还有一种就是将1111(此处省略96个)一共100个1&#xff0…