集成一个以官网(微信,QQ,微博)为标准的登录分享功能

Hello,各位老铁,今天要分享的是一个老生常谈的一个功能,也是网上一搜一大片的技术点,没什么技术含量,就是整合一下,提供一下方便,相对于友盟,ShareSdk中夹杂着一些别的功能,此文封装的绝对纯净,除了官网所提供的,不夹杂任何的代码逻辑,登录就是登录,分享就是分享,实实在在的以官网为标准。

目前已经上传到了GitHub,地址是:

https://github.com/AbnerMing888/AndroidShare

大家可以下载依赖使用,也可以maven远程使用。由于特别简单,本文概述如下:

1、使用步骤

2、功能具体调用

3、其他注意事项

4、总结

一、使用步骤

第一步,根项目下build.gradle

repositories {……maven { url "https://gitee.com/AbnerAndroid/android-maven/raw/master" }}

第二步,在需要的module下build.gradle

 implementation 'com.vip:share:1.0.0'

第三步,初始化,传自己申请的微信,QQ,微博信息

  ShareUtils.get().initShare(this,BuildConfig.WX_ID,BuildConfig.QQ_ID,BuildConfig.WB_KEY)

第四步,清单文件注册,WXEntryActivity需要在wxapi包下创建,一定要按照标准,可直接复制Demo中的,tencent1112002456是填自己申请的。

<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true"><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="tencent1112002456" /></intent-filter></activity>

二、功能具体调用

具体的功能调用,大家可以直接参考Demo中的MainActivity,或参照下面。

QQ登录

ShareUtils.get().login(this, ShareUtils.QQ).setOnQqCallBackListener({//登录成功Toast.makeText(this, it.toString(), Toast.LENGTH_LONG).show()}, {//登录失败})

微信登录,回调在WXEntryActivity类中

ShareUtils.get().login(this, ShareUtils.WEIXIN)

微博登录

ShareUtils.get().login(this, ShareUtils.WEIBO).setOnWbCallBackListener({//成功Toast.makeText(this, "微博登录成功", Toast.LENGTH_LONG).show()}, {//失败})

QQ好友分享链接

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareUrl(this,ShareUtils.QQ,"我是测试分享标题","我是测试分享链接","https://www.vipandroid.cn/ming/page/open.html",imagePath,).setOnQqCallBackListener({Log.e(TAG, "分享成功")}, {Log.e(TAG, "分享失败")})

QQ好友分享图片

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareImage(this,ShareUtils.QQ,imagePath,).setOnQqCallBackListener({Log.e(TAG, "分享成功")}, {Log.e(TAG, "分享失败")})

QQ空间分享链接

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareUrl(this,ShareUtils.QQ,"我是测试分享标题","我是测试分享链接","https://www.vipandroid.cn/ming/page/open.html",imagePath,ShareUtils.SCENE)

QQ空间分享图片

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareImage(this,ShareUtils.QQ,imagePath,ShareUtils.SCENE).setOnQqCallBackListener({Log.e(TAG, "分享成功")}, {Log.e(TAG, "分享失败")})

微博分享图片

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareImage(this, ShareUtils.WEIBO, imagePath)

微博分享链接

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareUrl(this, ShareUtils.WEIBO,"我是测试标题", "我是测试描述", "https://www.vipandroid.cn", imagePath)

微信好友分享链接

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareUrl(this,ShareUtils.WEIXIN,"我是测试标题","我是测试描述","https://www.vipandroid.cn",imagePath)

微信好友分享图片

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareImage(this, ShareUtils.WEIXIN, imagePath)

微信朋友圈分享链接

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareUrl(this,ShareUtils.WEIXIN,"我是测试标题","我是测试描述","https://www.vipandroid.cn",imagePath, ShareUtils.SCENE)

微信朋友圈分享图片

//注意,图片地址需要自己生成,这里我使用的是简单的测试
val absoluteFile = Environment.getExternalStorageDirectory().absoluteFile
val imagePath = "$absoluteFile/ic_launcher.png"
ShareUtils.get().qwShareImage(this, ShareUtils.WEIXIN, imagePath, ShareUtils.SCENE)

三、其他注意事项

回调

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)if (data != null) {//QQ回调ShareUtils.get().onQqActivityResult(requestCode, resultCode, data)//微博回调ShareUtils.get().onWbShareActivityResult(data, object : WbShareCallback {override fun onComplete() {}override fun onError(p0: UiError?) {}override fun onCancel() {}})}}

WXEntryActivity

用于接收微信登录或分享后的状态回调,可以在这里做一些其他的操作。

class WXEntryActivity : Activity(), IWXAPIEventHandler {private var mIWXAPI: IWXAPI? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)mIWXAPI = WXAPIFactory.createWXAPI(this, BuildConfig.WX_ID)mIWXAPI!!.handleIntent(intent, this)}override fun onNewIntent(intent: Intent?) {super.onNewIntent(intent)setIntent(intent)mIWXAPI!!.handleIntent(intent, this)}override fun onReq(resp: BaseReq?) {}override fun onResp(resp: BaseResp?) {when (resp!!.errCode) {BaseResp.ErrCode.ERR_OK -> {if (resp.type == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {//分享,做一些其他操作finish()} else if (resp.type == ConstantsAPI.COMMAND_SENDAUTH) { //登陆val code = (resp as SendAuth.Resp).codeToast.makeText(this, "微信登录成功", Toast.LENGTH_LONG).show()//根据code,和服务端进行绑定,获取信息后执行后续操作finish()}}else -> {finish()}}}}

混淆策略

-keep class com.tencent.mm.opensdk.** {*;}-keep class com.tencent.wxop.** {*;}-keep class com.tencent.mm.sdk.** {*;}-keep class * extends android.app.Dialog

四、总结

关于文中的分享图片地址,大家记得改为自己要分享的图片地址,QQ的ID,微信的ID,微博的KEY一定要设置自己申请的,并且要和应用包名,签名信息保持一致的。

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

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

相关文章

虹科案例 | 虹科HiveMQ助力实现百万辆汽车智能互联

一、应用背景 用户介绍 为顺应汽车技术和移动性的新兴趋势&#xff0c;Autonomic公司于2016年正式成立。公司致力于提供一个通用的平台&#xff0c;让汽车OEM可以利用此平台创建互联移动系统&#xff0c;为客户带来绝佳使用体验&#xff0c;并降低运营成本。2018年&#xff0c…

赋能创新,深开鸿发布面向金融行业KaihongOS发行版

3月28日&#xff0c; “开疆拓土&#xff0c;鸿鹄志远” 深圳开鸿数字产业发展有限公司&#xff08;以下简称“深开鸿”&#xff09;线上发布会成功举办。提炼前沿实践&#xff0c;聚焦金融科技&#xff0c;探索综合创新的金融数字化和智能化之路&#xff0c;深开鸿发布了面向金…

谷歌深夜王炸级更新!PaLM 2大模型震撼发布!Bard写代码,哪里不懂点哪里!

谷歌CEO桑达尔皮查伊&#xff1a;我们对AI的态度是又大胆又负责。 出品&#xff5c;网易科技智见焦点 作者&#xff5c;赵芙瑶 编辑&#xff5c;丁广胜 这回&#xff0c;谷歌急了&#xff01; 他们这半年过得是真憋屈&#xff01;近半年来AI的发展速度就像坐上了火箭&#xff0…

最简单的移动端pc端(解决苹果端的兼容问题)一键复制,保存到剪贴板

先上效果图&#xff1a; 为了用户体验更佳&#xff0c;对于公众号&#xff0c;手机号&#xff0c;物流单号&#xff0c;等需要一键复制而不是让用户一个一个的去选择。 demo链接&#xff1a; http://download.csdn.net/download/vlilyv/9970325 github下载地址 https://gi…

使用clipboard实现复制到剪切板功能(超详细~~)

先看看效果&#xff1a; 1.页面中使用 // html <Button type"primary" click"clickCopy">复制</Button>// js <script>import utils from /libs/utilsmethods: {clickCopy (){utils.copy2clipboard(LALALAALA)//复制的内容},} </s…

还用老套路分析财务数据?这3种财务分析方法,你一定得看看

如果问你一个问题&#xff1a;如何分析一家企业&#xff1f;很多人都会回答&#xff1a;从财务分析入手&#xff0c;但是这个好难&#xff0c;不是专业人员做不出来&#xff0c;就是专业的财务人员&#xff0c;做这个也不是一件容易的事情。 其实财务分析并不难&#xff0c;关…

财务分析真不难!无需代码,一个模板直接复用,碾压上千Excel表

我是某国企的一名老财务&#xff0c;说起来也工作了好几年了&#xff0c;但感觉每天都在做重复的事情&#xff1a;在最美好的年纪终日面对着各式各样的数据&#xff0c;对&#xff0c;是各式各样&#xff0c;不同阿拉伯数字组成不同的报表。 周末不加班&#xff0c;枉为财务人…

从只用Excel做报表,到可视化报表工具真香,他经历了什么

2020年了&#xff0c;很多人&#xff0c;乃至于很多企业做报表都还在用Excel&#xff0c;埋头苦干一天整出下面这个玩意&#xff1a; 你的辛苦领导都看在眼里&#xff0c;但是这做的实在是太差了&#xff0c;一点都不能反映数字与数字之间的关系&#xff0c;于是领导回复了你一…

财报不是难题,三分钟学会制作超简单的资产负债表

​对于财会人来说&#xff0c;财务报表就是吃饭的家伙事&#xff0c;会计做报表、审计审报表。可以说&#xff0c;财会人和财报待在一起的时间比对象都多。然而&#xff0c;财报有三表&#xff0c;分别是资产负债表、利润表和现金流量表&#xff0c;其中资产负债表是最最最常见…

这样的财务报表分析软件谁不爱!帮你轻松搞定财务问题~

作为财务人员&#xff0c;做各种财务报表已成家常便饭。小编以前也是用传统报表软件excel&#xff0c;使用简单&#xff0c;上手快&#xff0c;但是不久后发现一遇到数据量大的时候就完全不够用了&#xff0c;会出现更新麻烦、备份复杂&#xff0c;电脑桌面杂乱不堪的情况&…

50套可视化报表模板直接用,做报告不用愁了!快收藏

总有人头疼&#xff1a;报表怎么做&#xff1f;数据怎么展现给领导才是最合适的&#xff1f;年终总结怎么让人眼前一亮&#xff1f; 用Excel吧&#xff0c;太低端了&#xff0c;而且是真的丑&#xff0c;万一被pass不就惨了&#xff1f; 用python自动化吧&#xff0c;不会代码…

这才是老板爱看的人力资源分析报表,你只是在做“流水账”!

这篇从指标确认——图表搭建——数据分析来系统说下月度人力资源数据分析应该怎么做。 在做数据分析报表之前&#xff0c;得先知道月度人力资源数据分析包括哪些内容&#xff1a; 本月重点工作及上月工作总结在职人员结构分析月度人员异动分析月度招聘数据分析考勤绩效数据分析…

aj-report 编辑一个完整的大屏显示报表

接前两讲。 配置好数据源之后,我们就可以编写一个完整的大屏展示页面了。 我的目标页面如下: 虽然文字大小和排版没有最终调整,但是刚开始的时候我心里想的就是这么排版了。后面基本都是实现过程。 就刚开始使用的你来说,上面的这个排版界面其实你可以用excel先大略地排…

说出来你可能不信,我用excel就能做一张高端的统计报表

统计报表是指各级企事业、行政单位按规定的表格形式、内容、时间要求报送程序&#xff0c;自上而下统一布置&#xff0c;提供统计资料的一种统计调查方式。统计报表具有来源可靠、回收率高、方式灵活等特点&#xff0c;是各个基层企业或事业单位填报的报表&#xff0c;对企业而…

告别Excel!别人家高大上的财务数据分析,这才是老板的最爱

文末有超级多的财务干货~ 最近“大数据与数据可视化”确实火了一把&#xff0c;看看国外和国内的情况对比就知道&#xff0c;我们有能力也有决心通过大数据追踪到每一个人&#xff0c;这点着实让我佩服&#xff0c;同时我也很自豪&#xff0c;真的是发自内心的自豪。 这件事情过…

财务报表是用来排雷的-《手把手教你读财报》

财务报表是用来排雷的-《手把手教你读财报》 耳小月关注 0.122019.07.26 14:42:02字数 4,579阅读 206 这本书是作者一步一步按照财务报表的要素来解释和分析的&#xff0c;通过通俗的语言和真实的按理来手把手教我们分析的&#xff0c;比普通教科书式的财务分析书籍可读性强很…

被报表需求逼疯的银行数据人,是时候放弃用Excel做报表了

在银行干了几年数据分析&#xff0c;实在忍不住吐槽&#xff0c;这可以说是最没话语权&#xff0c;但脏活累活不断的部门。在银行&#xff0c;谁赚钱多谁就强势、嗓门大&#xff0c;赚钱多的业务部门基本上今天提业务指标需求&#xff0c;明天就得要做好分析。但科技人员响应需…

chatgpt赋能python:用什么软件编写Python文件?

用什么软件编写Python文件&#xff1f; Python 是一种流行的编程语言&#xff0c;许多人使用它来编写软件应用程序、数据分析工具以及自动化脚本。但是对于初学者来说&#xff0c;可能会感到迷茫&#xff0c;不知道应该用什么软件来编写并运行Python文件。本文将介绍几种非常流…

马斯克欲“放手”,终止收购 Twitter

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “网红”马斯克再现江湖。如果稍微留意一下&#xff0c;就会发现近段时间“马斯克”的名字似乎在各大科技网站的首页就没有下来过&#xff1a; 内部邮件被爆料&#xff0c;马斯克强制员工每周到岗 40 个…

H.264视频编解码的FPGA源码分析(二)帧内预测2

目录 intra_44帧内预测下左对角线模式INTRA4x4_DDL下右对角线模式INTRA4x4_DDR右垂直模式INTRA4x4_VR下水平模式INTRA4x4_HD左垂直模式INTRA4x4_VL上水平模式INTRA4x4_HU 变换编码为什么要使用Hadamard变换Rate Distortion Optimationlambda值的产生 前述文章链接在此 H.264视频…