基本思想,视图控制器和主appDelegate实现(微信通信的method不一定非要写到appDelegate.m里,但是
- (void)onResp:(BaseResp *)resp 这个函数一定要写到appDelegate.m里,所有很多时候为了统一,也把[WXApi sendReq:req]这个函数写到appDelegate里,这样就用到了一个代理,视图控制器指定appDelegate为其代理)
appDelegate.h中
#import <UIKit/UIKit.h>
#import "WXApi.h"
@class ViewController;
@protocol ViewControllerDelegate <NSObject>
- (void)sendReq:(NSString *)message;
@end
appDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.viewController.delegate = self;
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[WXApi registerApp:@"wxe6b1ef70e0e1e1e3"];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WXApi handleOpenURL:url delegate:self];
}
- (void)sendReq:(NSString *)message
{
SendMessageToWXReq *req = [[[SendMessageToWXReq alloc] init] autorelease];
req.bText = YES;
req.text = message;
req.scene = 0;
[WXApi sendReq:req];
}
- (void)onResp:(BaseResp *)resp
{
NSLog(@"hehe");
}
ViewController.h文件里#import <UIKit/UIKit.h>
#import "WXApiObject.h"
#import "WXApi.h"
@protocol ViewControllerDelegate;
@interface ViewController : UIViewController<ViewControllerDelegate>
{
id<ViewControllerDelegate> delegate;
}
@property (nonatomic,assign)id<ViewControllerDelegate> delegate;
ViewController.m文件中
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 60, 30);
[btn addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
- (void)btnPressed:(UIButton *)btn
{
[self sendTextContent];
}
- (void)sendTextContent
{
[self.delegate sendReq:@"乐山大佛姜辣素江东父老"];
}