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>            










本文转自 卓行天下  51CTO博客,原文链接:http://blog.51cto.com/9951038/1745645,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 小程序 API
【微信小程序】-- uni-app 项目-- 购物车 -- 首页 - 轮播图效果(五十二)
【微信小程序】-- uni-app 项目-- 购物车 -- 首页 - 轮播图效果(五十二)
【微信小程序】-- uni-app 项目-- 购物车 -- 首页 - 轮播图效果(五十二)
|
1月前
|
小程序 Shell 网络安全
【微信小程序】-- 使用 Git 管理项目(五十)
【微信小程序】-- 使用 Git 管理项目(五十)
|
1月前
|
小程序 安全 JavaScript
从零开始uniapp微信小程序项目到发布(超级详细)
最近微信小程序又掀起一波风潮,本文站在新手的角度出发,比较适合第一次使用uniapp 开发微信小程序的伙伴,或者没有过实战经验的小伙伴参考,从零搭建uniapp小程序项目
132 1
|
1月前
|
小程序 开发工具 git
【微信小程序】-- uni-app 项目--- 购物车 -- 配置 tabBar 效果(五十一)
【微信小程序】-- uni-app 项目--- 购物车 -- 配置 tabBar 效果(五十一)
|
3月前
|
JSON 小程序 JavaScript
微信小程序之项目基本结构、页面的基础及宿主环境
微信小程序之项目基本结构、页面的基础及宿主环境
|
3月前
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
66 0
|
6天前
|
小程序
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
6 0
|
1月前
|
小程序 安全 JavaScript
【微信小程序】-- uni-app 项目创建 & 目录结构讲解(四十九)
【微信小程序】-- uni-app 项目创建 & 目录结构讲解(四十九)
|
1月前
|
小程序 算法 搜索推荐
2024基于协同过滤算法springboot微信订餐小程序项目
2024基于协同过滤算法springboot微信订餐小程序项目
29 0
2024基于协同过滤算法springboot微信订餐小程序项目
|
1月前
|
小程序 JavaScript 前端开发
【原力计划小程序】1、一篇文章深入了解小程序的学习路线(以项目驱动的方式带你学习微信小程序)
【原力计划小程序】1、一篇文章深入了解小程序的学习路线(以项目驱动的方式带你学习微信小程序)
53 1

热门文章

最新文章