Android平台第三方应用分享到微信开发

社会化分享(附源码) 实现微信(好友、朋友圈)、QQ(好友、空间)、新浪微博等社会化分享方式。前言现在的app几乎里面都包括社会化分享和第三方登录这两个功能,前段时间给大家分享了关于几种(第三方登录)的实现,今天再给大家分享关于社会化分享的几种方式。 在关于第三方登录的那篇文章中就已经提到了mob这个第三方平台,我们直接调用其SDK即可。市面上做社会化分享平台的跟人感觉不错的:mob和友盟,根据个人或者公司的需求来选择 阅读详情

转自:http://www.cnblogs.com/zhouliweiblog/archive/2013/05/02/3055107.html

一、申请APPID

微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信、分享到微信的唯一标识。

申请微信APPID可以到微信平台http://open.weixin.qq.com/app/list/?lang=zh_CN上申请。具体的申请流程网站上有很详细的介绍,我这里就仅列出一些注意事项:

(1)申请APPID时的应用名字审核通过之后将不允许更改,所以申请时的应用名字一定要提前确定好。微信官方也有详细说明,如下图:

    


(2)应用签名问题:应用签名一定要填写正确,否则会出现第三方应用拉不起微信的情况。

首先可以下载微信官方提供的一个签名生成工具,打开这个应用输入第三方应用的包名就能拿到用于微信的应用签名。但是这里也有需要注意的地方:

1.我们平时开发使用的keystore是C:\Users\liwei\.android\ debug.keystore,而发布正式版肯定会有一个特定的keystore(比如:XXX.keystore)。因此,我们很有必要申请两个APPID,一个用于开发测试用,另一个用于正式发版。这样能够更方便平时的开发。

2.假如想使用别人的APPID或者运行别人的demo,可以按下面的步骤来做:

在eclipse中打开window--->preferences---->Android---->build如下图所示:

将别人的C:\Users\liwei\.android\ debug.keystore(微信提供的例子中有带这个debug.keystore,所以想运行微信提供的例子要在这里加载debug.keystore),在这加载进来,就可以使用了。


         (3)申请成功之后的APPID如下:

 

二、使用微信API接口

1、微信开放平台的一些公共类

(1)微信SDK会用到的主要类的类图


上面这张图展示的是与微信通信过程中的请求类和响应类。第三方应用通过他们

附带的message字段来携带消息传输给微信进程。其中BaseResp有个内部类是ErrCode,它里面定义了几个常量字段,当我们向微信发送请求后它会作为返回字段返回到我们的应用中来,我们可以根据这个做相应的处理(比如弹个toast来提醒用户分享的状态)。

(2)Message相关的类图

上面提到过,第三方应用是通过请求类和响应类中的message字段来和微信通信的,那么下面的图就展示了Message相关类的类图:


第三方应用和微信就是通过上面的不同种类的Message对象来与微信进行通信,从而能达到想要的效果。

(3)通信相关类

 

上面的IWXAPI就是所说的通信类,所有与微信进行通信的工作都是他在做,我们可以通过下面的工厂类来生成一个IWXAPI对象。旁边的IWXAPIEventHandler接口是需要我们第三方应用来实现的,如果我们想处理微信的请求信息或是我们向他发请求后他返回的标识字段,我们可以按照实现这个接口(可以参考微信开放平台文档上有详细说明http://open.weixin.qq.com/document/gettingstart/android/?lang=zh_CN)。

2.1.2微信与第三方应用通信时序图

(4)第三方应用向微信发送消息时的时序图


应用只需要进行一次注册就行了,我们可以在一个Acitivity的onCreate()中注册。然后在以后的使用中只需要封装消息,让通信类发送即可。从前面的类图中可以看到,封装消息的顺序是首先生成需要发送的媒体对象,然后将媒体对象附加到消息对象中,接着建立请求对象,最后使用通信类发送即可。

在向微信发送消息的时候,会弹出一个分享到微信的弹框,包括分享到微信之后的消息展示,都是微信自己定义的UI展示,第三方应用是无法控制的(只是对不同消息类型,微信的展示也是不同的)。

下面就对代码做简单的引导性介绍,微信平台做的还是比较不错的。举一反三,就能做出来微信的对应功能了。


其对应的代码大致如下:

注册到微信

封装Message(以WXWebpageObject 为例)和发送到微信

 


(5)第三方应用接收微信请求信息的时序图

微信向第三方发送的请求信息分为两种:一种是第三方应用注册到微信后在聊天界面出现的应用图标(如下图所示)。然后点击这个图标能向第三方应用发送请求,第二种是针对微信的WXAppExtendObject类型的对象的,当用户点击了微信中的消息之后,微信就会去请求第三方应用完成请求。

 


它的时序图如下所示:

下面对第三方应用接收微信发送的消息的代码做一些简单的介绍,按照以下步骤来就可以了。

1.在工程中建立包名.wxapi的包,其中包名只的是AndroidManifest.xml下面配置的packageName;

2.在新建的包下面新建一个WXEntryActivity类继承Activity,同时实现IWXAPIEventHandler接口(前面有提到过这个接口,用来接受微信的请求和返回信息)。

3.在onCreate()中调用 mApi.handleIntent(getIntent(), this);来等待微信的回调

4.实现IWXAPIEventHandler的onReq(微信发送请求到第三方应用时,会回调到该方法)和onResp(第三方应用发送到微信的请求处理后的响应结果,会回调到该方法)方法

5.另外需要注意在AndroidManifest.xml中配置WXEntryActivity时需要加上android:exported="true",主要是为了使微信进程能够调用第三方应用的进程。

其代码如下:

//在onCreate()中调用handleIntent().来等待微信进程的调用。


//微信进程请求第三方应用的回调。


//第三方应用发送Message到微信之后,微信返回的状态信息。


3.使用微信API注意事项

3.1微信公共平台问题

微信作为一个公共平台,还有一些自身的问题,下面是对我碰到的问题做一些描述:


1、

第三方应用是根据微信添加的参数isappinstalled来判断接收方手机上是否已安装了APP,但是经验证发现,微信的这个判断并不准确,即有时候用户手机上安装了APP,但是isappinstalled的值却为0;有时候没装APP,isappInstalled的值又为1。已经将这个问题反映给了微信团队。


2、

测试过程中会出现这种情况,会有个别手机会出现调不起微信客户端的情况。造成这种情况的原因是微信对缩略图的大小、title、description等参数的大小做了限制,所以有可能是大小超过了默认的范围。一般情况下缩略图超出比较常见。Title、description都是文本,一般不会超过。

3、分享到朋友圈时,是直接在第三方应用上弹出了分享框(这个有区别于分享给好友),分享完成之后,通过HOME键再回到微信,发现分享框依旧存在,并且还出现在桌面上。个人猜测,由于微信分享是新开了一个线程来处理,分享完成之后进程并没有被杀死,所以通过HOME键返回微信的时候会用到该进程。这个问题已经向微信反映。

4、通过第三方应用打开微信,假如用户没登录微信,会让用户登录微信,但是登录完成之后登录框还存在,并且这个时候其实已经登录成功了。造成这个问题的原因应该和第三个问题原因相似。

5、按照微信的要求,需要在工程中新建一个”应用包名.wxapi”的包,并在其下建立一个WXEntityActivity类。那么分享完成之后可能有两种情况发生:

 (1)假如没做任何处理,那么分享完成之后回到第三方应用界面会是一个黑色的界面,啥也没有。

 (2)假如在WXEntityActivity类中在IWXAPIEventHandler接口的实现方法onResp()中调用finish()方法将WXEntityActivity销毁掉,那么分享完成之后将会闪过一个黑色的界面回到第三方应用。

综上,其实我们可以发现,微信分享完成之后会到WXEntityActivity这个Activity中,第一种情况,因为WXEntityActivity没有布局文件,所以就是一个黑色的界面。第二种情况,由于finish掉了WXEntityActivity 这个Activity,所以是黑了一下。

这种情况将WXEntityActivity作为应用的界面展示就没有问题了,但是正常情况下,我们都是在已有的项目上加微信分享这个逻辑,所以,代码迁移也是影响比较大的。解决方法是可以用Android系统提供的android:theme="@android:style/Theme.NoDisplay"。

6、可以反编译下微信的源码看看。

 以上的部分图片是从其它人写的博客里copy过来的。欢迎大家交流学习。



目前最新NIST随机数测试软件下载、安装、及使用教程 最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载... 阅读详情

相关推荐

Cadence Sigrity

目录 一、PowerSI 1、PowerSI仿真前设置 2、PowerSI提取S参数 (1)检查叠层 (2)选择需要提取的走线和GND (3)设置端口 (4)设置提取频率和提取方式 (5)运行仿真 一、PowerSI PowerSI是一个交流分析工具,适用于频域仿真。 S参数提取 电源阻抗提取 全波参数提取 阻抗、耦合检查 谐振分析 1、PowerSI仿真前设置 打开PCB文件: 打开后如图: 设置为单色后: 仿真前的设置:

fang_yang_wa的博客 3万+

APP内置H5分享到微信

APP内置H5发起分享方法归纳

Tm0527的博客 2769

大规模SoC芯片Hierarchical Flow Calibre LVS教程

大规模SoC芯片Hierarchical Flow Calibre物理验证LVS实现教程

weixin_37584728的博客 1199

APP分享到微信的流程(以及二次分享样式问题)

如果要完成微信分享,还是有需要去微信官方开发文档看一下的。附上地址:微信开发平台微信公众平台开发文档自己老年记忆力过段时间肯定会忘记如何去实现这个功能,所以记录一下。因为自己不是写客户端的(Android、ios),所以前端代码并不能详细记录在这里,可以参考微信开发平台中的说明。后端服务是在客户端提供给我们一个接口的前提下进行开发的。接口如下:/** * 分享 * type:1:仅分享到通讯2...

LYL_520的博客 5万+

ADS版图优化中的参数化设计技巧

本文详细介绍了在ADS中进行射频电路版图参数化设计的核心技巧。通过将版图关键尺寸定义为变量,并与电磁仿真及优化器联动,实现从手动修改到自动迭代的转变,极大提升了PA、LNA等电路的设计与优化效率。文章以阶梯阻抗变换器为例,阐述了变量创建、绑定及协同仿真的完整流程,并提供了避免网格冲突、变量混乱等常见问题的实用指南。

weixin_29296241的博客 405

YOLOv11改进 | 引入DEConv细节增强卷积模块:恢复细节信息,提升小目标检测精度

摘要: YOLOv11在目标检测中面临小目标检测精度不足的问题,主要由于细节信息丢失。本文提出引入DEConv(细节增强卷积)模块,通过多分支卷积和残差连接恢复高频细节,提升小目标检测性能。DEConv结合3×3卷积与空洞卷积增强边缘信息,并自适应融合特征,兼容YOLOv11的P3层(小目标关键层)且计算高效。实验表明,该改进在无人机航拍、显微镜图像等密集小目标场景中显著减少漏检,同时保持轻量化和实时性优势。代码实现可直接嵌入现有YOLO架构,仅需替换P3层卷积模块。

走向CTO的路上... 948

【uniapp APP分享到微信】

uniapp APP分享小程序卡片,分享图片,分享图文,分享到朋友圈

前端-CV全粘工程师 9334

03 Token、Embedding、上下文窗口:开发者必须懂的三个基本概念

Token、Embedding 和上下文窗口是大模型应用开发的三个基础概念。本文从成本、速度、检索和上下文设计四个角度讲清它们的工程意义,帮助开发者理解为什么同一段内容会超限、变贵,为什么 RAG 能做语义检索。

老于的笔记的专栏 407

【uni-app+vue3】分享功能,App端调用手机的系统分享,可分享到微信、QQ、朋友圈等,已实现

【uni-app+vue3】分享功能,App端调用手机的系统分享,可分享到微信、QQ、朋友圈等,已实现

花椒和蕊的博客 3109

V4L2教程(1):Ubuntu V4L2开发环境搭建与设备探索

欢迎来到V4L2学习指南的第一篇!本文将带你从零开始,在Ubuntu系统上搭建完整的V4L2视频采集开发环境。无论你是想开发视频监控、视频会议还是机器视觉应用,掌握V4L2都是Linux视频开发的必经之路。 **本节学习目标**: - 理解V4L2的基本概念和架构 - 搭建Ubuntu下的V4L2开发环境 - 掌握v4l2-ctl等调试工具的使用 - 学会检测和配置USB摄像头设备

琅嬛福地 417

【微服务】SpringBoot 整合Kafka 项目实战操作详解

SpringBoot 整合Kafka 实战操作详解

congge 5569

[转载]Android平台第三方应用分享到微信开发

一、申请APPID 微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信、分享到微信的唯一标识。 申请微信APPID可以到微信平台http://open.weixin.qq.com/app/list/?lang=zh_CN上申请。具体的申请流程网站上有很详细的介绍,我这里就仅列出一些注意事项: (1)申请APPID时的应用名字审核通过之后将不允许更改,所以申请时的应用名字...

ajt1472580369的博客 103

【数据分析八步法】将模糊需求转化为可验证的分析问题

国内访问Huggingface官方源常遇网络问题,可通过切换国内镜像提升下载速度。三种配置方式:1)设置HF_ENDPOINT环境变量;2)在from_pretrained中直接指定镜像参数;3)修改本地Huggingface配置文件。常用镜像包括hf-mirror.com、阿里云ModelScope和清华镜像源。注意镜像同步延迟、私有模型限制,建议配合huggingface-cli工具使用,必要时取消代理设置。合理配置镜像源可显著改善Huggingface生态使用体验。

Mr数据杨 857

【COCOS2DX-ANDROID-游戏开发之十二】Android平台第三方应用分享到微信开发

一、申请APPID 微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信、分享到微信的唯一标识。 申请微信APPID可以到微信平台http://open.weixin.qq.com/app/list/?lang=zh_CN上申请。具体的申请流程网站上有很详细的介绍,我这里就仅列出一些注意事项: (1)申请APPID时的应用名字审核通过之后将不允许更改,所以申请时的应用名字一定要提前

Teng's world 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料 转载请注明出处:http://blog.youkuaiyun.com/yangyu20121224/article/details/9057257         由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果

u010507199的专栏 1040

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 有关sip及sipdroid的资料
下一篇: Java内部类
骑行的蜗牛
博客等级 码龄21年 107粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值