友盟微社区,旨在帮助开发者在 APP 内快速建立一个专属的社区,让用户与用户、用户与开发者之间可以双向沟通,同时借助话题和关系链,用户可自行创造、传播高价值内容,提高 APP 粘性。
1)如果你尚未在友盟注册开发者账号,需要先注册
2)如果你之前已经在友盟注册了开发者账户,可以直接使用该账户登录。
3)得到账户之后到友盟微社区官网进行登录,登录成功之后并进入到"我的社区",点击**添加新社区**,输出社区相关信息之后点击创建即可。
4)然后点击新创建的社区的"社区管理",进入到社区设置页面,选择"应用"一栏,然后再选择"创建新应用"或者"添加新应用",此时你可以新建应用或者从已有的应用中选择,填写完应用基本信息后,点击"创建"即可。
5)此时您就会得到友盟Appkey。
注:一个微社区可对应多个Appkey。
详情请看产品文档使用流程。
在友盟微社区iOS SDK下载最新的SDK。
解压文件后把文件夹umeng_community_ios_sdk_xxx添加到Xcode工程中。
请在你的xcode工程添加下面的系统framework
Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
CoreLocation.framework
AssetsLibrary.framework
AVFoundation.framework
NSLocationAlwaysUsageDescription
为NSString:""View controller-based status bar appearance
为YES.为了兼容iOS9,需要用如下方式允许用HTTP进行网络连接,(没有用Xcode7可以忽略):
在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果使用友盟第三方登录或者分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败,(没有用Xcode7 可以忽略)。
在info.plist增加:LSApplicationQueriesSchemes 的key,value为array类型,然后再array中根据需要添加如下内容:
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名单-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ和Qzone URL Scheme 白名单-->
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV3</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdk</string>
</array>
在appdelegate下面的方法内设置appkey,例如:
#import "UMCommunity.h"
……
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
// 注:AppSecret要与AppKey匹配
[UMCommunity setWithAppKey:@"54d19091fd98c55a19000406" withAppSecret:@"XXXXX"]; //需要修改微社区的Appkey
}
在你要显示社区的页面,使用下面的代码来弹出整个社区页面:
#import "UMCommunity.h"
……
UINavigationController *communityViewController = [UMCommunity getFeedsModalViewController];
[self presentModalViewController:communityViewController animated:YES];
或者把社区页面push到UINavigation
#import "UMCommunity.h"
……
UIViewController *communityViewController = [UMCommunity getFeedsViewController];
[self.navigationController pushViewController:communityViewController animated:YES];
1)在微社区管理后台->社区管理->应用->友盟推送->应用信息,上传开发证书和生产证书
2)在下面的代码内获取设备device token,然后把该字符串上传到微社区管理后台->社区管理->应用->友盟推送->开发环境->添加测试设备,
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSLog(@"----devicetoken------%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""]);
}
3)实现消息通知的功能,在appdelegate下面的方法设置appkey,例如:
#import "UMCommunity.h"
……
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
……
NSDictionary *notificationDict = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if ([notificationDict valueForKey:@"umwsq"]) {
[UMComMessageManager startWithOptions:launchOptions];
if ([notificationDict valueForKey:@"aps"]) // 点击推送进入
{
[UMComMessageManager didReceiveRemoteNotification:notificationDict];
}
} else {
[UMComMessageManager startWithOptions:nil];
//使用你的消息通知处理
}
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[UMComMessageManager registerDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if ([userInfo valueForKey:@"umwsq"]) {
[UMComMessageManager didReceiveRemoteNotification:userInfo];
} else {
//使用你自己的消息推送处理
}
}
首先按照第三方push组件的要求部署代码,然后根据以下代码,将收到的push信息交给微社区处理
#import "UMComMessageManager.h"
……
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
……
NSDictionary *notificationDict = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
[UMComMessageManager didReceiveRemoteNotification:notificationDict];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[UMComMessageManager didReceiveRemoteNotification:userInfo];
}
如果使用qq登录的功能,需要添加xcode的一项url scheme:tencent+QQ 开放平台的应用appid,例如tencent100424468 。还有添加一下url scheme:“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。另外需要在你的工程的info.plist设置Bundle display name。
若果使用微信登录的功能,需要添加一项xcode的url scheme为微信appid,例如wxd930ea5d5a258f4f。 在appdelegate下面的方法设置各个社交平台的appid,例如:
#import "UMSocialQQHandler.h"
#import "UMSocialWechatHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//一下代码必须得在 调用[UMCommunity setWithAppKey:@"54d19091fd98c55a19000406"]; 这个方法设置appkey之后调用
//设置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];
//设置分享到QQ互联的appId和appKey
[UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"];
}
请参考详细集成文档。