• 微信分享 添加URL Schemes


    1. TARGETS - Info - URL Types

    identifier -> weixin

    URL Schemes -> 应用id

     

    2.在AppDelegate.h 引入头文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    <pre name="code" >#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];
    }
     
     
    -(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];
    }
  • 相关阅读:
    登录注册页面切换
    LINUX系统日常使用命令
    find命令详解
    ssh命令详解
    tar命令详解
    route命令详解
    uname命令详解
    ps命令详解
    df命令详解
    virsh命令详解
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4599823.html
Copyright © 2020-2023  润新知