iOS项目社会化分享-微信分享,朋友圈分享

iOS项目社会化分享-微信分享,朋友圈分享

我只做了文字和图片分享功能


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" class="objc">#import "WXApi.h"

{

/**

 *      WXSceneSession   分享到会话

 *      WXSceneTimeline  分享到朋友圈

 *      WXSceneFavorite  分享到我的收藏

 */

    enum WXScene _scene;

}</pre><br>

<pre class="brush:java;"></pre>

<pre class="brush:java;"></pre>

<p>3.在AppDelegate.m</p>

<p></p>

<p></p>

<pre class="brush:java;">- (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];

}

 

</pre><pre class="brush:java;">//<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提供内容, 需要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:@"标题:%@ \n内容:%@ \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:@"发送媒体消息结果"];

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

    }

}

 

</pre><br>

<br>

<p></p>

 

<p></p>

<p></p>

<p>

<br>

</p>

<p>

<br>

</p>

<p>

4.这是我写好的在微信会话和朋友圈分享文字或者图片的方法</p>

<p>

直接调用就可以</p>

<p>

<br>

</p>

<pre class="brush:java;">#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];

}

</pre><br>

<br>

<pre class="brush:java;"></pre>

<p></p>

<pre class="brush:java;"></pre>

<br>

<p></p>

<br>

 

<br>

<br>

<br>                        


你可能感兴趣的:(朋友,项目,图片分享)