zoukankan      html  css  js  c++  java
  • iOS

    我仅仅做了文字和图片分享功能大笑


    1. TARGETS - Info - URL Types 

    identifier -> weixin

    URL Schemes ->  应用id


    2.在AppDelegate.h 引入头文件 

    #import "WXApi.h"
    {
    /**
     *      WXSceneSession   分享到会话
     *      WXSceneTimeline  分享到朋友圈
     *      WXSceneFavorite  分享到我的收藏
     */
        enum WXScene _scene;
    }

    
    
    - (id)init
    {
        if(self = [super init]){
            _scene = WXSceneSession;
        }
        return self;
    }
    -(void) changeScene:(NSInteger)scene
    {
        _scene = scene;
    }
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    	
        // 其他代码
    
        // 向微信注冊应用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];
    }
    
    
    onReq 和 onResp 能够不写
    -(void) onReq:(BaseReq*)req
    {
        if([req isKindOfClass:[GetMessageFromWXReq class]])
        {
            // 微信请求App提供内容, 须要app提供内容后使用sendRsp返回
            NSString *strTitle = [NSString stringWithFormat:@"微信请求App提供内容"];
            NSString *strMsg   = @"微信请求App提供内容,App要调用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;
            
            //显示微信传过来的内容
            WXAppExtendObject *obj = msg.mediaObject;
            
            NSString *strTitle = [NSString stringWithFormat:@"微信请求App显示内容"];
            NSString *strMsg   = [NSString stringWithFormat:@"标题:%@ 
    内容:%@ 
    附带信息:%@ 
    缩略图:%u bytes
    
    ", 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:@"发送媒体消息结果"];
            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.这是我写好的在微信会话和朋友圈分享文字或者图片的方法

    直接调用就能够, 也能够按需求整到一起

    #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];
    }
    

    
    
  • 相关阅读:
    【转载】如果你看完这篇文章还不懂计算机时间,那就掐死我吧
    记录 C#中 LINQ 和 SQL 语句 的一些操作数据集合
    记录mysql 存储过程中循环临时表
    记录一个有趣的dotnet开源库。
    将Quartz.Net用于ASP.NET Core 3.0应用程序中的,并实现通过依赖注入获取其他服务
    web api中接收 复杂类型数组参数(对象数组参数)
    网页支付宝支付,通过form表单提交,在苹果手机上无法跳转
    阿里云服务器上搭建FTP服务器,连接时出现:读取目录列表失败的解决办法
    css选择器及float(浮动)
    盒子四大元素
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7100228.html
Copyright © 2011-2022 走看看