IOS 微信共享给好友或者朋友圈
来源:互联网 发布:德州扑克平台 知乎 编辑:程序博客网 时间:2024/05/17 03:12
用XCode6开发微信共享功能步骤
1.在微信开放平台注册应用程序id
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
2.下载微信终端SDK文件
SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个。
请前往“资源下载页”下载最新SDK包
3.搭建开发环境
[1] 在XCode中建立你的工程。
[2] 将SDK文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件添加到你所建的工程中(如下图所示,建立了一个名为WeiXinTest 的工程,并把以上三个文件添加到Test文件夹下)。
[3]微信开放平台新增了微信模块用户统计功能,便于开发者统计微信功能模块的用户使用和活跃情况。开发者需要在工程中链接上:SystemConfiguration.framework,libz.dylib,libsqlite3.0.dylib,libc++.dylib。
[4] 在你的工程文件中选择Build Setting,在Search Paths中添加 libWeChatSDK.a ,WXApi.h,WXApiObject.h 三个文件所在位置(如下图所示)。
[5] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。
Xcode设置URL scheme
[5] 在你需要使 用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。
4.在代码中使用开发工具包
[1] 要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向微信注册id)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[WXApiregisterApp:@"wx28b424d0f0a228fc"];
returnYES;
}
[2] 重写AppDelegate的handleOpenURL和openURL方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WXApihandleOpenURL:urldelegate:self];
}
[3] 现在,你的程序要实现和微信终端交互的具体请求与回应,因此需要实现WXApiDelegate协议的两个方法:
-(void) onReq:(BaseReq*)reqonReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面。
-(void) onReq:(BaseReq*)req
{
if([reqisKindOfClass:[GetMessageFromWXReqclass]])
{
}
elseif([reqisKindOfClass:[ShowMessageFromWXReqclass]])
{
}
}
-(void) onResp:(BaseResp*)resp如果第三方程序向微信发送了sendReq的请求,那么onResp会被回调。sendReq请求调用后,会切到微信终端程序界面。
-(void) onResp:(BaseResp*)resp
{
//可以省略
if([respisKindOfClass:[SendMessageToWXRespclass]])
{
}
elseif([respisKindOfClass:[SendAuthRespclass]])
{
}
}
具体在此两方法中所要完成的内容由你定义,具体可参考微信开发工具包中的SDK Sample Demo源码。
[4] 如果你的程序要发消息给微信,那么需要调用WXApi的sendReq函数:
-(BOOL) sendReq:(BaseReq*)req其中req参数为SendMessageToWXReq类型。
1.要有一个事件触发
- (IBAction)share:(id)sender {
UIActionSheet *acSheet = [[UIActionSheetalloc]initWithTitle:nildelegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:nilotherButtonTitles:@"分享给微信好友",@"分享到朋友圈",nil];
acSheet.tag =1;
acSheet.actionSheetStyle =UIActionSheetStyleBlackTranslucent;
[acSheet showInView:[[UIApplicationsharedApplication]keyWindow]];
}
2.响应选择- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (actionSheet.tag==1){
if (buttonIndex ==0) {
[selfsendMusicContent];
[_delegatechangeScene:WXSceneSession];
}
elseif (buttonIndex ==1) {
[_delegatechangeScene:WXSceneTimeline];
[selfsendVideoContent];
}
}
}
分享实现:- (void)sendMusicContent
{
// if (_delegate)
// {
// [_delegate sendMusicContent] ;
// }
if ([WXApiisWXAppInstalled] && [WXApiisWXAppSupportApi]) {
WXMediaMessage *message = [WXMediaMessagemessage];
message.title = @"阴天";
message.description =@"";
[messagesetThumbImage:[UIImageimageNamed:@"res3.jpg"]];
WXMusicObject *ext = [WXMusicObjectobject];
ext.musicUrl =@"";
message.mediaObject = ext;
SendMessageToWXReq* req = [[SendMessageToWXReqalloc]init];
req.bText =NO;
req.message = message;
req.scene =_scene;
[WXApisendReq:req];
}else{
UIAlertView *alView = [[UIAlertViewalloc]initWithTitle:@""message:@"你的iPhone上还没有安装微信,无法使用此功能,使用微信可以方便的把你喜欢的作品分享给好友。"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"免费下载微信",nil];
[alViewshow];
}
}
@protocol sendMsgToWeChatViewDelegate <NSObject>
- (void) sendMusicContent ;
- (void) sendVideoContent ;
- (void) changeScene:(NSInteger)scene;
@end
@interface ViewController :UIViewController<UIActionSheetDelegate,WXApiDelegate,sendMsgToWeChatViewDelegate>
{
enumWXScene _scene;
}
@property (nonatomic,assign)id<sendMsgToWeChatViewDelegate> delegate;
- (void)sendVideoContent
{
// if (_delegate)
// {
// [_delegate sendVideoContent] ;
// }
if ([WXApiisWXAppInstalled] && [WXApiisWXAppSupportApi]) {
WXMediaMessage *message = [WXMediaMessagemessage];
message.title =@"";
message.description =@"";
[messagesetThumbImage:[UIImageimageNamed:@"res2.jpg"]];
WXVideoObject *ext = [WXVideoObjectobject];
ext.videoUrl =@"";
message.mediaObject = ext;
SendMessageToWXReq* req = [[SendMessageToWXReqalloc]init];
req.bText =NO;
req.message = message;
req.scene =WXSceneTimeline;
[WXApisendReq:req];
}else{
UIAlertView *alView = [[UIAlertViewalloc]initWithTitle:@""message:@"你的iPhone上还没有安装微信,无法使用此功能,使用微信可以方便的把你喜欢的作品分享给好友。"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"免费下载微信",nil];
[alViewshow];
}
}
需要注意的是,SendMessageToWXReq的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。如果scene填WXSceneTimeline,那么消息会发送至朋友圈。如果scene填WXSceneFavorite,那么消息会发送到“我的收藏”中。scene默认值为WXSceneSession。
- IOS 微信共享给好友或者朋友圈
- 使用微信api将内容分享给好友,或者发送到朋友圈
- 使用微信api将内容分享给好友,或者发送到朋友圈
- 使用微信api将内容分享给好友,或者发送到朋友圈
- 微信分享到朋友圈或者好友界面无响应
- 微信实现转发到朋友圈或者好友
- 微信开发--分享到朋友圈和发送给好友
- 微信分享好友,朋友圈
- 微信分享好友,朋友圈
- iOS 分享功能之图片压缩(微信好友-朋友圈)
- ios 微信好友分享和朋友圈分享
- 微信页面分享 给朋友或者朋友圈
- 微信分享到好友或者朋友圈的截屏图片
- 微信分享好友和朋友圈demo
- 微信分享好友和朋友圈demo
- iOS新浪微博 微信好友、微信朋友圈、QQ自身sdk分享方法
- iOS QQ、QQ空间、微信好友、微信朋友圈分享成功如何显示图文
- 微信公众平台开发-分享到朋友圈和发送给好友和腾讯微博
- 分支-14. 简单计算器(10) 两个数的简单计算器 (10分)
- cf#238 (Div. 1) B. Toy Sum
- The Setstack Computer
- Codeforces 290C
- 大型网站架构
- IOS 微信共享给好友或者朋友圈
- DBUnit单元测试
- 2015.2.16 关于delphi web控件打开新网页时弹出关闭页面(js代码)出错的解决办法研究
- UVA 131 The Psychic Poker Player
- NYOJ--44(动态规划)-题目----------------------------- 子串和
- AIX上 断开的NFS 挂载点 导致 Oracle instance hang 住
- Android ListView移除Item
- 欢迎使用CSDN-markdown编辑器
- helloWorld