微信登陆,bug修改
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// Constant.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef SDKSample_Constant_h
|
||||
#define SDKSample_Constant_h
|
||||
|
||||
#define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]
|
||||
|
||||
#define TIPSLABEL_TAG 10086
|
||||
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
|
||||
#define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
|
||||
#define BUFFER_SIZE 1024 * 100
|
||||
|
||||
static const int kHeadViewHeight = 135;
|
||||
static const int kSceneViewHeight = 100;
|
||||
|
||||
static NSString *kTextMessage = @"人文的东西并不是体现在你看得到的方面,它更多的体现在你看不到的那些方面,它会影响每一个功能,这才是最本质的。但是,对这点可能很多人没有思考过,以为人文的东西就是我们搞一个很小清新的图片什么的。”综合来看,人文的东西其实是贯穿整个产品的脉络,或者说是它的灵魂所在。";
|
||||
|
||||
static NSString *kImageTagName = @"WECHAT_TAG_JUMP_APP";
|
||||
static NSString *kMessageExt = @"这是第三方带的测试字段";
|
||||
static NSString *kMessageAction = @"<action>dotalist</action>";
|
||||
|
||||
static NSString *kLinkURL = @"http://tech.qq.com/zt2012/tmtdecode/252.htm";
|
||||
static NSString *kLinkTagName = @"WECHAT_TAG_JUMP_SHOWRANK";
|
||||
static NSString *kLinkTitle = @"专访张小龙:产品之上的世界观";
|
||||
static NSString *kLinkDescription = @"微信的平台化发展方向是否真的会让这个原本简洁的产品变得臃肿?在国际化发展方向上,微信面临的问题真的是文化差异壁垒吗?腾讯高级副总裁、微信产品负责人张小龙给出了自己的回复。";
|
||||
|
||||
static NSString *kMusicURL = @"http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A22E4B880E697A0E68980E69C89222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156342F4141414130414141414E5430577532394D7A59344D7A63774D4C6735586A4C517747335A50676F47443864704151526643473444442F4E653765776B617A733D2F31303130333334372E6D34613F7569643D3233343734363930373526616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31342E71716D757369632E71712E636F6D2F33303130333334372E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E4B880E697A0E68980E69C89222C22736F6E675F4944223A3130333334372C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E5B494E581A5222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D313574414141416A41414141477A4C36445039536A457A525467304E7A38774E446E752B6473483833344843756B5041576B6D48316C4A434E626F4D34394E4E7A754450444A647A7A45304F513D3D2F33303130333334372E6D70333F7569643D3233343734363930373526616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D";
|
||||
static NSString *kMusicDataURL = @"http://stream20.qqmusic.qq.com/32464723.mp3";
|
||||
static NSString *kMusicTitle = @"一无所有";
|
||||
static NSString *kMusicDescription = @"崔健";
|
||||
|
||||
static NSString *kVideoURL = @"http://v.youku.com/v_show/id_XNTUxNDY1NDY4.html";
|
||||
static NSString *kVideoTitle = @"乔布斯访谈";
|
||||
static NSString *kVideoDescription = @"饿着肚皮,傻逼着。";
|
||||
|
||||
static NSString *kAPPContentTitle = @"App消息";
|
||||
static NSString *kAPPContentDescription = @"这种消息只有App自己才能理解,由App指定打开方式";
|
||||
static NSString *kAppContentExInfo = @"<xml>extend info</xml>";
|
||||
static NSString *kAppContnetExURL = @"http://weixin.qq.com";
|
||||
static NSString *kAppMessageExt = @"这是第三方带的测试字段";
|
||||
static NSString *kAppMessageAction = @"<action>dotaliTest</action>";
|
||||
|
||||
static NSString *kAuthScope = @"snsapi_message,snsapi_userinfo,snsapi_friend,snsapi_contact";
|
||||
static NSString *kAuthOpenID = @"0c806938e2413ce73eef92cc3";
|
||||
static NSString *kAuthState = @"xxx";
|
||||
|
||||
static NSString *kFileTitle = @"iphone4.pdf";
|
||||
static NSString *kFileDescription = @"Pro CoreData";
|
||||
static NSString *kFileExtension = @"pdf";
|
||||
static NSString *kFileName = @"iphone4";
|
||||
|
||||
|
||||
static NSString *kProfileExtMsg = @"http://we.qq.com/d/AQCIc9a3EqRfb19z8WnLB6iFNCxX5bO2S3lHwMQL";
|
||||
static NSString *kBizWebviewExtMsg = @"KOoCKdavezBjdj2wJZsq67N2j_g3XEQ5JP_pkLhBYS4";
|
||||
|
||||
static NSString *kMiniProgramTitle = @"小程序title";
|
||||
static NSString *kMiniProgramDesc = @"小程序Desc";
|
||||
#endif
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// GetMessageFromWXResp+responseWithTextOrMediaMessage.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXApiObject.h"
|
||||
|
||||
@interface GetMessageFromWXResp (responseWithTextOrMediaMessage)
|
||||
|
||||
+ (GetMessageFromWXResp *)responseWithText:(NSString *)text
|
||||
OrMediaMessage:(WXMediaMessage *)message
|
||||
bText:(BOOL)bText;
|
||||
@end
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// GetMessageFromWXResp+responseWithTextOrMediaMessage.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "GetMessageFromWXResp+responseWithTextOrMediaMessage.h"
|
||||
|
||||
@implementation GetMessageFromWXResp (responseWithTextOrMediaMessage)
|
||||
|
||||
+ (GetMessageFromWXResp *)responseWithText:(NSString *)text
|
||||
OrMediaMessage:(WXMediaMessage *)message
|
||||
bText:(BOOL)bText {
|
||||
GetMessageFromWXResp *resp = [[GetMessageFromWXResp alloc] init];
|
||||
resp.bText = bText;
|
||||
if (bText)
|
||||
resp.text = text;
|
||||
else
|
||||
resp.message = message;
|
||||
return resp;
|
||||
}
|
||||
|
||||
@end
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// SendMessageToWXReq+requestWithTextOrMediaMessage.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXApiObject.h"
|
||||
|
||||
@interface SendMessageToWXReq (requestWithTextOrMediaMessage)
|
||||
|
||||
+ (SendMessageToWXReq *)requestWithText:(NSString *)text
|
||||
OrMediaMessage:(WXMediaMessage *)message
|
||||
bText:(BOOL)bText
|
||||
InScene:(enum WXScene)scene;
|
||||
@end
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// SendMessageToWXReq+requestWithTextOrMediaMessage.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "SendMessageToWXReq+requestWithTextOrMediaMessage.h"
|
||||
|
||||
@implementation SendMessageToWXReq (requestWithTextOrMediaMessage)
|
||||
|
||||
+ (SendMessageToWXReq *)requestWithText:(NSString *)text
|
||||
OrMediaMessage:(WXMediaMessage *)message
|
||||
bText:(BOOL)bText
|
||||
InScene:(enum WXScene)scene {
|
||||
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
|
||||
req.bText = bText;
|
||||
req.scene = scene;
|
||||
if (bText)
|
||||
req.text = text;
|
||||
else
|
||||
req.message = message;
|
||||
return req;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// UIAlertView+WX.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by liuyunxuan on 2017/2/10.
|
||||
//
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
typedef void(^WXAlertSureBlock)(UIAlertView *alertView,NSString *text);
|
||||
|
||||
@interface UIAlertView (WX)<UIAlertViewDelegate>
|
||||
|
||||
///请求输入内容的alert
|
||||
+ (void)requestWithTitle:(NSString *)title
|
||||
message:(NSString *)message
|
||||
defaultText:(NSString *)defaultText
|
||||
sure:(WXAlertSureBlock)sure;
|
||||
|
||||
// 只返回确定的结果
|
||||
+ (void)showWithTitle:(NSString *)title
|
||||
message:(NSString *)message
|
||||
sure:(WXAlertSureBlock)sure;
|
||||
@end
|
||||
@@ -0,0 +1,87 @@
|
||||
//
|
||||
// UIAlertView+WX.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by liuyunxuan on 2017/2/10.
|
||||
//
|
||||
//
|
||||
|
||||
#import "UIAlertView+WX.h"
|
||||
#import <objc/runtime.h>
|
||||
|
||||
|
||||
static const void *WXAlertSureKey = &WXAlertSureKey;
|
||||
static const NSInteger kSureTag = 1010;
|
||||
static const NSInteger kRequestTag = 1020;
|
||||
|
||||
@implementation UIAlertView (WX)
|
||||
|
||||
/// withOut delegate
|
||||
+ (void)requestWithTitle:(NSString *)title
|
||||
message:(NSString *)message
|
||||
defaultText:(NSString *)defaultText
|
||||
sure:(WXAlertSureBlock)sure;
|
||||
{
|
||||
UIAlertView *view = [[UIAlertView alloc] initWithTitle:title
|
||||
message:message
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"取消"
|
||||
otherButtonTitles:@"确认", nil];
|
||||
view.delegate = view;
|
||||
view.alertViewStyle = UIAlertViewStylePlainTextInput;
|
||||
[view setSureBlock:sure];
|
||||
[view textFieldAtIndex:0].text = defaultText;
|
||||
view.tag = kRequestTag;
|
||||
[view show];
|
||||
}
|
||||
|
||||
+ (void)showWithTitle:(NSString *)title
|
||||
message:(NSString *)message
|
||||
sure:(WXAlertSureBlock)sure
|
||||
{
|
||||
UIAlertView *view = [[UIAlertView alloc] initWithTitle:title
|
||||
message:message
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"取消"
|
||||
otherButtonTitles:@"确认", nil];
|
||||
view.delegate = view;
|
||||
view.tag = kSureTag;
|
||||
[view setSureBlock:sure];
|
||||
[view show];
|
||||
}
|
||||
|
||||
#pragma mark - delegate
|
||||
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
|
||||
{
|
||||
if (buttonIndex == alertView.cancelButtonIndex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
WXAlertSureBlock sureBlock = [self sureBlock];
|
||||
if (alertView.tag == kRequestTag)
|
||||
{
|
||||
if (sureBlock)
|
||||
{
|
||||
sureBlock(alertView,[alertView textFieldAtIndex:0].text);
|
||||
}
|
||||
}
|
||||
else if (alertView.tag == kSureTag)
|
||||
{
|
||||
if (sureBlock)
|
||||
{
|
||||
sureBlock(alertView,nil);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - private method
|
||||
-(void)setSureBlock:(WXAlertSureBlock)block
|
||||
{
|
||||
objc_setAssociatedObject(self, WXAlertSureKey, block, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
-(WXAlertSureBlock)sureBlock
|
||||
{
|
||||
return objc_getAssociatedObject(self, WXAlertSureKey);
|
||||
}
|
||||
@end
|
||||
@@ -0,0 +1,39 @@
|
||||
//
|
||||
// WXApiManager.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 16/07/2015.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "WXApi.h"
|
||||
|
||||
@protocol WXApiManagerDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
- (void)managerDidRecvShowMessageReq:(ShowMessageFromWXReq *)request;
|
||||
|
||||
- (void)managerDidRecvLaunchFromWXReq:(LaunchFromWXReq *)request;
|
||||
|
||||
- (void)managerDidRecvMessageResponse:(SendMessageToWXResp *)response;
|
||||
|
||||
- (void)managerDidRecvAuthResponse:(SendAuthResp *)response;
|
||||
|
||||
- (void)managerDidRecvAddCardResponse:(AddCardToWXCardPackageResp *)response;
|
||||
|
||||
- (void)managerDidRecvChooseCardResponse:(WXChooseCardResp *)response;
|
||||
|
||||
- (void)managerDidRecvChooseInvoiceResponse:(WXChooseInvoiceResp *)response;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@interface WXApiManager : NSObject<WXApiDelegate>
|
||||
|
||||
@property (nonatomic, assign) id<WXApiManagerDelegate> delegate;
|
||||
|
||||
+ (instancetype)sharedManager;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// WXApiManager.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 16/07/2015.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXApiManager.h"
|
||||
|
||||
@implementation WXApiManager
|
||||
|
||||
#pragma mark - LifeCycle
|
||||
+(instancetype)sharedManager {
|
||||
static dispatch_once_t onceToken;
|
||||
static WXApiManager *instance;
|
||||
dispatch_once(&onceToken, ^{
|
||||
instance = [[WXApiManager alloc] init];
|
||||
});
|
||||
return instance;
|
||||
}
|
||||
|
||||
#pragma mark - WXApiDelegate
|
||||
- (void)onResp:(BaseResp *)resp {
|
||||
if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvMessageResponse:)]) {
|
||||
SendMessageToWXResp *messageResp = (SendMessageToWXResp *)resp;
|
||||
[_delegate managerDidRecvMessageResponse:messageResp];
|
||||
}
|
||||
} else if ([resp isKindOfClass:[SendAuthResp class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvAuthResponse:)]) {
|
||||
SendAuthResp *authResp = (SendAuthResp *)resp;
|
||||
[_delegate managerDidRecvAuthResponse:authResp];
|
||||
}
|
||||
} else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvAddCardResponse:)]) {
|
||||
AddCardToWXCardPackageResp *addCardResp = (AddCardToWXCardPackageResp *)resp;
|
||||
[_delegate managerDidRecvAddCardResponse:addCardResp];
|
||||
}
|
||||
} else if ([resp isKindOfClass:[WXChooseCardResp class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvChooseCardResponse:)]) {
|
||||
WXChooseCardResp *chooseCardResp = (WXChooseCardResp *)resp;
|
||||
[_delegate managerDidRecvChooseCardResponse:chooseCardResp];
|
||||
}
|
||||
}else if ([resp isKindOfClass:[WXChooseInvoiceResp class]]){
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvChooseInvoiceResponse:)]) {
|
||||
WXChooseInvoiceResp *chooseInvoiceResp = (WXChooseInvoiceResp *)resp;
|
||||
[_delegate managerDidRecvChooseInvoiceResponse:chooseInvoiceResp];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)onReq:(BaseReq *)req {
|
||||
if ([req isKindOfClass:[ShowMessageFromWXReq class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvShowMessageReq:)]) {
|
||||
ShowMessageFromWXReq *showMessageReq = (ShowMessageFromWXReq *)req;
|
||||
[_delegate managerDidRecvShowMessageReq:showMessageReq];
|
||||
}
|
||||
} else if ([req isKindOfClass:[LaunchFromWXReq class]]) {
|
||||
if (_delegate
|
||||
&& [_delegate respondsToSelector:@selector(managerDidRecvLaunchFromWXReq:)]) {
|
||||
LaunchFromWXReq *launchReq = (LaunchFromWXReq *)req;
|
||||
[_delegate managerDidRecvLaunchFromWXReq:launchReq];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,87 @@
|
||||
//
|
||||
// WXApiManager.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "WXApiObject.h"
|
||||
|
||||
@interface WXApiRequestHandler : NSObject
|
||||
|
||||
+ (void)sendText:(NSString *)text
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendImageData:(NSData *)imageData
|
||||
TagName:(NSString *)tagName
|
||||
MessageExt:(NSString *)messageExt
|
||||
Action:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendLinkURL:(NSString *)urlString
|
||||
TagName:(NSString *)tagName
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendMusicURL:(NSString *)musicURL
|
||||
dataURL:(NSString *)dataURL
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendVideoURL:(NSString *)videoURL
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendEmotionData:(NSData *)emotionData
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)sendFileData:(NSData *)fileData
|
||||
fileExtension:(NSString *)extension
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
|
||||
|
||||
+ (void)sendAppContentData:(NSData *)data
|
||||
ExtInfo:(NSString *)info
|
||||
ExtURL:(NSString *)url
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
MessageExt:(NSString *)messageExt
|
||||
MessageAction:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene;
|
||||
|
||||
+ (void)addCardsToCardPackage:(NSArray *)cardIds cardExts:(NSArray *)cardExts;
|
||||
|
||||
+ (void)sendAuthRequestScope:(NSString *)scope
|
||||
State:(NSString *)state
|
||||
OpenID:(NSString *)openID
|
||||
InViewController:(UIViewController *)viewController;
|
||||
|
||||
+ (void)chooseCard:(NSString *)appid
|
||||
cardSign:(NSString *)cardSign
|
||||
nonceStr:(NSString *)nonceStr
|
||||
signType:(NSString *)signType
|
||||
timestamp:(UInt32)timestamp;
|
||||
|
||||
+ (void)openUrl:(NSString *)url;
|
||||
|
||||
+ (void)chooseInvoice:(NSString *)appid
|
||||
cardSign:(NSString *)cardSign
|
||||
nonceStr:(NSString *)nonceStr
|
||||
signType:(NSString *)signType
|
||||
timestamp:(UInt32)timestamp;
|
||||
@end
|
||||
@@ -0,0 +1,280 @@
|
||||
//
|
||||
// WXApiManager.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXApi.h"
|
||||
#import "WXApiRequestHandler.h"
|
||||
#import "WXApiManager.h"
|
||||
#import "SendMessageToWXReq+requestWithTextOrMediaMessage.h"
|
||||
#import "WXMediaMessage+messageConstruct.h"
|
||||
|
||||
@implementation WXApiRequestHandler
|
||||
|
||||
#pragma mark - Public Methods
|
||||
+ (void)sendText:(NSString *)text
|
||||
InScene:(enum WXScene)scene {
|
||||
SendMessageToWXReq *req = [SendMessageToWXReq requestWithText:text
|
||||
OrMediaMessage:nil
|
||||
bText:YES
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req];
|
||||
}
|
||||
|
||||
+ (void)sendImageData:(NSData *)imageData
|
||||
TagName:(NSString *)tagName
|
||||
MessageExt:(NSString *)messageExt
|
||||
Action:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXImageObject *ext = [WXImageObject object];
|
||||
ext.imageData = imageData;
|
||||
|
||||
WXMediaMessage *message = [WXMediaMessage messageWithTitle:nil
|
||||
Description:nil
|
||||
Object:ext
|
||||
MessageExt:messageExt
|
||||
MessageAction:action
|
||||
ThumbImage:thumbImage
|
||||
MediaTag:tagName];
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)sendLinkURL:(NSString *)urlString
|
||||
TagName:(NSString *)tagName
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXWebpageObject *ext = [WXWebpageObject object];
|
||||
ext.webpageUrl = urlString;
|
||||
|
||||
WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
|
||||
Description:description
|
||||
Object:ext
|
||||
MessageExt:nil
|
||||
MessageAction:nil
|
||||
ThumbImage:thumbImage
|
||||
MediaTag:tagName];
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)sendMusicURL:(NSString *)musicURL
|
||||
dataURL:(NSString *)dataURL
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXMusicObject *ext = [WXMusicObject object];
|
||||
ext.musicUrl = musicURL;
|
||||
ext.musicDataUrl = dataURL;
|
||||
|
||||
WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
|
||||
Description:description
|
||||
Object:ext
|
||||
MessageExt:nil
|
||||
MessageAction:nil
|
||||
ThumbImage:thumbImage
|
||||
MediaTag:nil];
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)sendVideoURL:(NSString *)videoURL
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXMediaMessage *message = [WXMediaMessage message];
|
||||
message.title = title;
|
||||
message.description = description;
|
||||
[message setThumbImage:thumbImage];
|
||||
|
||||
WXVideoObject *ext = [WXVideoObject object];
|
||||
ext.videoUrl = videoURL;
|
||||
|
||||
message.mediaObject = ext;
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)sendEmotionData:(NSData *)emotionData
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXMediaMessage *message = [WXMediaMessage message];
|
||||
[message setThumbImage:thumbImage];
|
||||
|
||||
WXEmoticonObject *ext = [WXEmoticonObject object];
|
||||
ext.emoticonData = emotionData;
|
||||
|
||||
message.mediaObject = ext;
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)sendFileData:(NSData *)fileData
|
||||
fileExtension:(NSString *)extension
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXMediaMessage *message = [WXMediaMessage message];
|
||||
message.title = title;
|
||||
message.description = description;
|
||||
[message setThumbImage:thumbImage];
|
||||
|
||||
WXFileObject *ext = [WXFileObject object];
|
||||
ext.fileExtension = @"pdf";
|
||||
ext.fileData = fileData;
|
||||
|
||||
message.mediaObject = ext;
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+ (void)sendAppContentData:(NSData *)data
|
||||
ExtInfo:(NSString *)info
|
||||
ExtURL:(NSString *)url
|
||||
Title:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
MessageExt:(NSString *)messageExt
|
||||
MessageAction:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
InScene:(enum WXScene)scene {
|
||||
WXAppExtendObject *ext = [WXAppExtendObject object];
|
||||
ext.extInfo = info;
|
||||
ext.url = url;
|
||||
ext.fileData = data;
|
||||
|
||||
WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
|
||||
Description:description
|
||||
Object:ext
|
||||
MessageExt:messageExt
|
||||
MessageAction:action
|
||||
ThumbImage:thumbImage
|
||||
MediaTag:nil];
|
||||
|
||||
SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
|
||||
OrMediaMessage:message
|
||||
bText:NO
|
||||
InScene:scene];
|
||||
[WXApi sendReq:req ];
|
||||
|
||||
}
|
||||
|
||||
+ (void)addCardsToCardPackage:(NSArray *)cardIds cardExts:(NSArray *)cardExts
|
||||
{
|
||||
NSMutableArray *cardItems = [NSMutableArray array];
|
||||
for (NSString *cardId in cardIds) {
|
||||
WXCardItem *item = [[WXCardItem alloc] init];
|
||||
item.cardId = cardId;
|
||||
item.appID = @"wxf8b4f85f3a794e77";
|
||||
[cardItems addObject:item];
|
||||
}
|
||||
|
||||
for (NSInteger index = 0; index < cardItems.count; index++) {
|
||||
WXCardItem *item = cardItems[index];
|
||||
NSString *ext = cardExts[index];
|
||||
item.extMsg = ext;
|
||||
}
|
||||
|
||||
AddCardToWXCardPackageReq *req = [[AddCardToWXCardPackageReq alloc] init];
|
||||
req.cardAry = cardItems;
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)chooseCard:(NSString *)appid
|
||||
cardSign:(NSString *)cardSign
|
||||
nonceStr:(NSString *)nonceStr
|
||||
signType:(NSString *)signType
|
||||
timestamp:(UInt32)timestamp
|
||||
{
|
||||
WXChooseCardReq *chooseCardReq = [[WXChooseCardReq alloc] init];
|
||||
chooseCardReq.appID = appid;
|
||||
chooseCardReq.cardSign = cardSign;
|
||||
chooseCardReq.nonceStr = nonceStr;
|
||||
chooseCardReq.signType = signType;
|
||||
chooseCardReq.timeStamp = timestamp;
|
||||
[WXApi sendReq:chooseCardReq ];
|
||||
|
||||
}
|
||||
|
||||
+ (void)sendAuthRequestScope:(NSString *)scope
|
||||
State:(NSString *)state
|
||||
OpenID:(NSString *)openID
|
||||
InViewController:(UIViewController *)viewController
|
||||
{
|
||||
SendAuthReq* req = [[SendAuthReq alloc] init];
|
||||
req.scope = scope; // @"post_timeline,sns"
|
||||
req.state = state;
|
||||
req.openID = openID;
|
||||
|
||||
[WXApi sendAuthReq:req
|
||||
viewController:viewController
|
||||
delegate:[WXApiManager sharedManager]
|
||||
];
|
||||
}
|
||||
|
||||
+ (void)openUrl:(NSString *)url
|
||||
{
|
||||
OpenWebviewReq *req = [[OpenWebviewReq alloc] init];
|
||||
req.url = url;
|
||||
[WXApi sendReq:req ];
|
||||
}
|
||||
|
||||
+ (void)chooseInvoice:(NSString *)appid
|
||||
cardSign:(NSString *)cardSign
|
||||
nonceStr:(NSString *)nonceStr
|
||||
signType:(NSString *)signType
|
||||
timestamp:(UInt32)timestamp
|
||||
{
|
||||
WXChooseInvoiceReq *chooseInvoiceReq = [[WXChooseInvoiceReq alloc] init];
|
||||
chooseInvoiceReq.appID = appid;
|
||||
chooseInvoiceReq.cardSign = cardSign;
|
||||
chooseInvoiceReq.nonceStr = nonceStr;
|
||||
chooseInvoiceReq.signType = signType;
|
||||
// chooseCardReq.cardType = @"INVOICE";
|
||||
chooseInvoiceReq.timeStamp = timestamp;
|
||||
// chooseCardReq.canMultiSelect = 1;
|
||||
[WXApi sendReq:chooseInvoiceReq ];
|
||||
}
|
||||
|
||||
@end
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// WXMediaMessage+messageConstruct.h
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXApiObject.h"
|
||||
|
||||
@interface WXMediaMessage (messageConstruct)
|
||||
|
||||
+ (WXMediaMessage *)messageWithTitle:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
Object:(id)mediaObject
|
||||
MessageExt:(NSString *)messageExt
|
||||
MessageAction:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
MediaTag:(NSString *)tagName;
|
||||
@end
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// WXMediaMessage+messageConstruct.m
|
||||
// SDKSample
|
||||
//
|
||||
// Created by Jeason on 15/7/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "WXMediaMessage+messageConstruct.h"
|
||||
|
||||
@implementation WXMediaMessage (messageConstruct)
|
||||
|
||||
+ (WXMediaMessage *)messageWithTitle:(NSString *)title
|
||||
Description:(NSString *)description
|
||||
Object:(id)mediaObject
|
||||
MessageExt:(NSString *)messageExt
|
||||
MessageAction:(NSString *)action
|
||||
ThumbImage:(UIImage *)thumbImage
|
||||
MediaTag:(NSString *)tagName {
|
||||
WXMediaMessage *message = [WXMediaMessage message];
|
||||
message.title = title;
|
||||
message.description = description;
|
||||
message.mediaObject = mediaObject;
|
||||
message.messageExt = messageExt;
|
||||
message.messageAction = action;
|
||||
message.mediaTagName = tagName;
|
||||
[message setThumbImage:thumbImage];
|
||||
return message;
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user