zoukankan      html  css  js  c++  java
  • 微信分享 添加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];
    }
  • 相关阅读:
    js添加获取删除cookie
    华为Scan Kit二维码扫描
    Android中使用抖动动画吸引来用户注意-属性动画
    material_dialogs 动画弹框
    flutter 通过widget自定义toast,提示信息
    flutter 通过用户信息配置路由拦截 shared_preferences
    fluterr shared_preferences 存储用户信息 MissingPluginException(No implementation found for method getAll on channel
    Android Scroller及实际使用
    Antd Tree简单使用
    iOS开发--runtime常用API
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4599823.html
Copyright © 2011-2022 走看看