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,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
iOS开发 开发者
iOS微信分享配置universal links步骤
iOS微信分享配置universal links步骤
1146 58
|
30天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
98 1
|
2月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
4月前
|
Linux Android开发 iOS开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统各自占据着举足轻重的地位。本文深入探讨了这两个平台在技术特性、市场覆盖、用户群体和开发成本等方面的差异,并分析了这些差异如何影响项目的最终成功。通过比较分析,旨在为开发者提供决策依据,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
21天前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
146 3
|
21天前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
230 0
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
1月前
|
JavaScript
vue尚品汇商城项目-day06【43.微信支付业务】
vue尚品汇商城项目-day06【43.微信支付业务】
32 0
|
2月前
|
Java 开发工具 Android开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的浩瀚宇宙中,安卓和iOS两大星系璀璨夺目,各自拥有独特的光芒。本文将穿梭于这两个平台之间,探讨它们在开发环境、用户群体、成本效益等方面的差异,以及这些差异如何影响一个项目的航向和终点。我们将从初学者的视角出发,逐步深入,揭示选择合适平台的重要性,以及如何根据项目需求做出明智的选择。无论你是即将启航的新手开发者,还是已经在这片星海中航行的老手,这篇文章都将为你提供有价值的导航信息。
54 2
|
2月前
|
Java 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着重要的位置。本文旨在深入探讨这两个平台在开发过程中的主要差异,包括编程语言、开发工具、用户界面设计、性能优化以及市场分布等方面。通过对比分析,我们将揭示平台选择如何影响项目规划、执行效率和最终成果,为开发者在选择适合自己项目需求的平台时提供参考依据。