ios 从微信返回自己的app

有这样一个需求。从我们自己的app分享内容到微信。点击分享内容返回到我们自己的app。(新浪微博的内容分享到微信就是这样的)

前面一直百度,谷歌都没用。可能我用的方法跟他们不一样吧。而且他们的方法都比较老了。2012、13年左右

方法就是用url sheames 然后告诉微信我这个openurl是注册了协议的。你点击之后跳转来我的app。 我不知道我这样理解对还是不对。

但意思大概就是这样的。

结果看了这些帖子。问题之后,我越做越没有头绪。怎么弄都没有返回到我自己的app。

后来直接不看了,到微信开发官网看文档去。结果收获满满。(微信接入指南)

我下载了微信开发官网的demo。然后打开试了各种类型的发送消息给微信

最后锁定了一个发送app消息给微信。这就是我要的效果和新浪微博一样的效果。

#define BUFFER_SIZE 1024 * 100
- (void) sendAppContent
{
    WXMediaMessage *message = [WXMediaMessage message];
    message.title = @"App消息";
    message.description = @"这种消息只有App自己才能理解,由App指定打开方式!";
    [message setThumbImage:[UIImage imageNamed:@"res2.jpg"]];

    WXAppExtendObject *ext = [WXAppExtendObject object];
    ext.extInfo = @"<xml>extend info</xml>";
    ext.url = @"http://www.qq.com";

    Byte* pBuffer = (Byte *)malloc(BUFFER_SIZE);
    memset(pBuffer, 0, BUFFER_SIZE);
    NSData* data = [NSData dataWithBytes:pBuffer length:BUFFER_SIZE];
    free(pBuffer);

    ext.fileData = data;

    message.mediaObject = ext;

    SendMessageToWXReq* req = [[[SendMessageToWXReq alloc] init]autorelease];
    req.bText = NO;
    req.message = message;
    req.scene = _scene;

    [WXApi sendReq:req];

}

这些类都有注释,有介绍的

/*! @brief 多媒体消息结构体
 *
 * 用于微信终端和第三方程序之间传递消息的多媒体消息内容
 */
@interface WXMediaMessage : NSObject
+(WXMediaMessage *) message;

/** 标题
 * @note 长度不能超过512字节
 */
@property (nonatomic, retain) NSString *title;
/** 描述内容
 * @note 长度不能超过1K
 */
@property (nonatomic, retain) NSString *description;
/** 缩略图数据
 * @note 大小不能超过32K
 */
@property (nonatomic, retain) NSData   *thumbData;
/** todo
 * @note 长度不能超过64字节
 */
@property (nonatomic, retain) NSString *mediaTagName;
/**
 *
 */
@property (nonatomic, retain) NSString *messageExt;
@property (nonatomic, retain) NSString *messageAction;
/** 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。 */
@property (nonatomic, retain) id        mediaObject;
/*! @brief 多媒体消息中包含的App扩展数据对象
 *
 * 第三方程序向微信终端发送包含WXAppExtendObject的多媒体消息,
 * 微信需要处理该消息时,会调用该第三方程序来处理多媒体消息内容。
 * @note url,extInfo和fileData不能同时为空
 * @see WXMediaMessage
 */
@interface WXAppExtendObject : NSObject
/*! @brief 返回一个WXAppExtendObject对象
 *
 * @note 返回的WXAppExtendObject对象是自动释放的
 */
+(WXAppExtendObject *) object;

/** 若第三方程序不存在,微信终端会打开该url所指的App下载地址
 * @note 长度不能超过10K
 */
@property (nonatomic, retain) NSString *url;
/** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
 * @note 长度不能超过2K
 */
@property (nonatomic, retain) NSString *extInfo;
/** App文件数据,该数据发送给微信好友,微信好友需要点击后下载数据,微信终端会回传给第三方程序处理
 * @note 大小不能超过10M
 */
@property (nonatomic, retain) NSData   *fileData;

@end
 1 /*! @brief 第三方程序发送消息至微信终端程序的消息结构体
 2  *
 3  * 第三方程序向微信发送信息需要传入SendMessageToWXReq结构体,信息类型包括文本消息和多媒体消息,
 4  * 分别对应于text和message成员。调用该方法后,微信处理完信息会向第三方程序发送一个处理结果。
 5  * @see SendMessageToWXResp
 6  */
 7 @interface SendMessageToWXReq : BaseReq
 8 /** 发送消息的文本内容
 9  * @note 文本长度必须大于0且小于10K
10  */
11 @property (nonatomic, retain) NSString* text;
12 /** 发送消息的多媒体内容
13  * @see WXMediaMessage
14  */
15 @property (nonatomic, retain) WXMediaMessage* message;
16 /** 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
17 @property (nonatomic, assign) BOOL bText;
18
19 /** 发送的目标场景,可以选择发送到会话(WXSceneSession)或者朋友圈(WXSceneTimeline)。 默认发送到会话。
20  * @see WXScene
21  */
22 @property (nonatomic, assign) int scene;
23
24 @end

从上到下的类介绍

WXMediaMessage,

WXAppExtendObject,

SendMessageToWXReq

最后调用微信的发生方法。发生消息给微信。

在微信聊天界面是这样的。 如果是自己发生的,在消息的左上角有一个箭头(对方发的在右上角)

这样的消息叫应用消息。是不是跟分享一样啊,点击就可以返回到自己的app了。

时间: 2024-10-07 01:34:00

ios 从微信返回自己的app的相关文章

ios下微信浏览器如何唤醒app?app已上架应用宝

android下可以通过在应用宝微下载地址后面加参数&android_schema='应用schema'来实现,ios下如何实现? ios下微信浏览器如何唤醒app?app已上架应用宝 >> ios 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/ios/1010000008247218/ios下微信浏览器如何唤醒appapp已上架应用宝.html

iOS/Android 浏览器(h5)及微信中唤起本地APP

在移动互联网,链接是比较重要的传播媒质,但很多时候我们又希望用户能够回到APP中,这就要求APP可以通过浏览器或在微信中被方便地唤起. 这是一个既直观又很好的用户体验,但在实现过程中会遇到各种问题: 如何解决未安装APP时的做好引导页 如何在微信中唤醒APP 在iOS9中如何处理universal link被用户误关的情况 如何解决Android各种机型.各种第三方浏览器导致的兼容问题等 在APP未安装情况下,引导用户下载后打开APP后,如何进入之前唤起时指定的页面或内容,即如何实现场景还原 在

iOS 关于微信检测SDK应用的原理浅析

微信作为一个开放平台,各方面都是做得比较好的,推出了SDK之后,微信与使用了SDK的应用便能进行更多交互.但在iOS平台上,应用间交换数据还是相对麻烦的,那么微信为什么能直接在应用检测到其他使用了SDK的应用呢?基于这个疑问,我用了一个下午研究其原理. 一.SDK的方法 我之前也没使用过微信的SDK,不过下载后,查看发现SDK接口有这么一段 1 /*! @brief WXApi的成员函数,在微信终端程序中注册第三方应用. 2 * 3 * 需要在每次启动第三方应用程序时调用.第一次调用后,会在微信

微信开放平台手机APP支付

                PHP对接APP微信支付 微信开放平台手机APP支付总结 1. 微信开放平台手机APP支付总结 支付功能链接: https://pay.weixin.qq.com/wiki/doc/api/index.html APP支付功能文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3 Demo下载地址: https://pay.weixin.qq.com/wiki/doc/api/jsapi

腾讯微信被怼,iOS版微信不能打赏了

2017年4月19日,估计很多有着大量粉丝的微信自媒体作者会感到很不爽,因为他们的苹果粉丝再也无法很爽快地.肆意.任性地打赏他们了,按目前iphone手机的占有率,估计打赏率会掉一半以上. 据微信派微信公众号4月19日消息,受苹果公司新规定影响,2017年4月19日17:00起,iOS版微信公众平台赞赏功能将被关闭, 安卓等其他版本微信赞赏功能不受影响. 经过与苹果方面长期沟通协调,最终,我们选择对iOS版微信赞赏功能进行了调整,对此造成的不便,深感遗憾. 感谢公众号运营者们长期以来对于内容的支

iOS 集成微信支付

目前项目里有微信支付的需求,调研过一段时间后,发现其实并没有想象中的那么困难.如果你只是想实现该功能,一个方法足以,但是若你想深入了解实现原理.就需要花费更多的功夫了.目前我只清楚微信支付需要做签名,一种是在后台签名,一种是自己在前端签名.其实这对前端来说代码量并没有多大的改变,最大的区别是在后台签名逻辑更容易理解,而在前端签名逻辑有些混乱. 现在,小编也只是知道怎么使用,而不得其精髓,现在我附上我的学习链接,为了避免以后链接出现不可用情况,请各位理解小编的粘贴复制. 博客园(幻想无极) htt

微信公众平台取代APP?开发者总结六大理由

最近,腾讯科技采访了一些移动互联网创业者,发现大家都正在或试图通过HTML5把自己的APP的功能转移到自己的微信公众账号上来. 微信会在不知不觉当中革掉移动互联网前辈——APP的命吗?这是一个很值得讨论的话题. 昨天极客公园举办移动互联网大会,其中第一个主论坛是“微信I/O论坛”.当微信跟I/O这两个词放在一起的时候,我们逐渐发现,微信对于移动互联网来说,并不仅仅是功能性的产品,它在移动互联网的层级上,可以往下,再往下,成为应用.模式.生态架构的承载基础. 公众账号就是这个I/O基础之上的小型生

微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析

作者:蒸米@阿里移动安全 序言 微信作为手机上的第一大应用,有着上亿的用户.并且很多人都不只拥有一个微信帐号,有的微信账号是用于商业的,有的是用于私人的.可惜的是官方版的微信并不支持多开的功能,并且频繁更换微信账号也是一件非常麻烦的事,于是大家纷纷在寻找能够在手机上登陆多个微信账号的方法,相对于iOS,Android上早就有了很成熟的产品,比如360 OS的微信双开和LBE的双开大师就可以满足很多用户多开的需求. 但是在iOS上,因为苹果的安全机制,并没有任何知名的IT厂商推出微信多开的产品,反

【转】swift实现ios类似微信输入框跟随键盘弹出的效果

swift实现ios类似微信输入框跟随键盘弹出的效果 为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连接,那么这是怎么实现的呢,也许你会说直接在键盘弹出的时候把输入框也向上移动不就行了?但是我使用这种方法的时候,发现效果十分不理想,会有明显的滞后现象,原因有以下几点: 键盘弹出动画并不是匀速,键盘和输入框的时间曲线不完全一致,运动不同步 各种键盘的高度不一样(比如