iOS項目社會化分享-微信分享,朋友圈分享,ios朋友圈我只做了文字和圖片分享功能
1. TARGETS - Info - URL Types identifier -> weixin URL Schemes -> 應(yīng)用id
2.在AppDelegate.h 引入頭文件 <pre name="code" class="objc">#import "WXApi.h" { /** * WXSceneSession 分享到會話 * WXSceneTimeline 分享到朋友圈 * WXSceneFavorite 分享到我的收藏 */ enum WXScene _scene; } 3.在AppDelegate.m - (id)init{ if(self = [super init]){ _scene = WXSceneSession; } return self; } -(void) changeScene:(NSInteger)scene { _scene = scene; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 其它代碼 // 向微信注冊應(yīng)用ID [WXApi registerApp:@"xxooxoxoxoxoxoxo"]; } #pragma mark - 重寫AppDelegate的handleOpenURL和openURL方法 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [WXApi handleOpenURL:url delegate:self]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [WXApi handleOpenURL:url delegate:self]; } //<span style="font-family: Arial, Helvetica, sans-serif;">onReq 和 </span><span style="font-family: Arial, Helvetica, sans-serif;">onResp 可以不寫</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>-(void) onReq:(BaseReq*)req { if([req isKindOfClass:[GetMessageFromWXReq class]]) { // 微信請求App提供內(nèi)容, 需要app提供內(nèi)容后使用sendRsp返回 NSString *strTitle = [NSString stringWithFormat:@"微信請求App提供內(nèi)容"]; NSString *strMsg = @"微信請求App提供內(nèi)容,App要調(diào)用sendResp:GetMessageFromWXResp返回給微信"; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; alert.tag = 1000; [alert show]; [alert release]; } else if([req isKindOfClass:[ShowMessageFromWXReq class]]) { ShowMessageFromWXReq* temp = (ShowMessageFromWXReq*)req; WXMediaMessage *msg = temp.message; //顯示微信傳過來的內(nèi)容 WXAppExtendObject *obj = msg.mediaObject; NSString *strTitle = [NSString stringWithFormat:@"微信請求App顯示內(nèi)容"]; NSString *strMsg = [NSString stringWithFormat:@"標(biāo)題:%@ \n內(nèi)容:%@ \n附帶信息:%@ \n縮略圖:%u bytes\n\n", msg.title, msg.description, obj.extInfo, msg.thumbData.length]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } else if([req isKindOfClass:[LaunchFromWXReq class]]) { //從微信啟動App NSString *strTitle = [NSString stringWithFormat:@"從微信啟動"]; NSString *strMsg = @"這是從微信啟動的消息"; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } } -(void) onResp:(BaseResp*)resp { if([resp isKindOfClass:[SendMessageToWXResp class]]) { NSString *strTitle = [NSString stringWithFormat:@"發(fā)送媒體消息結(jié)果"]; NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", resp.errCode]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } }
4.這是我寫好的在微信會話和朋友圈分享文字或者圖片的方法 直接調(diào)用就可以
#pragma mark - 微信, 朋友圈分享 #pragma mark 文字分享 - (void)sharedByWeChatWithText:(NSString *)WeChatMessage sceneType:(int)sceneType { SendMessageToWXReq *req = [[[SendMessageToWXReq alloc] init]autorelease]; req.text = WeChatMessage; req.bText = YES; req.scene = sceneType; [WXApi sendReq:req]; } #pragma mark 圖片分享 - (void)sharedByWeChatWithImage:(NSString *)imageName sceneType:(int)sceneType { WXMediaMessage *message = [WXMediaMessage message]; [message setThumbImage:[UIImage imageNamed:imageName]]; WXImageObject *ext = [WXImageObject object]; NSString *filePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]; ext.imageData = [NSData dataWithContentsOfFile:filePath]; UIImage *image = [UIImage imageWithData:ext.imageData]; ext.imageData = UIImagePNGRepresentation(image); message.mediaObject = ext; SendMessageToWXReq *req = [[[SendMessageToWXReq alloc] init]autorelease]; req.bText = NO; req.message = message; req.scene = sceneType; [WXApi sendReq:req]; } 對于社會化分享微信的問題別的可以自然代碼問題不大,我想到一個可能的問題,你試試運行過去后拔掉USB線,然后手機重新運行應(yīng)用,原因是微信的sdk的debug下面有問題。。。想當(dāng)初我唄困在這里好久好久,。。。 為何用吐槽神器與萌圖分享到微信朋友圈,發(fā)好了為何開自己的朋友圈看不見?我同樣是IOS6的系統(tǒng),分享到微信上的基本十次有九次都是看不到的;看上去好像是分享成功了,其實根本沒被接受。。。這是微信與IOS6之間的沖突問題,上次我提問給微信團(tuán)隊,他們回復(fù)我說暫時還有問題,帶來不便十分抱歉。。。 |
|