友盟+搜索

{{errorMsg}}

产品概述

友盟微社区,旨在帮助开发者在 APP 内快速建立一个专属的社区,让用户与用户、用户与开发者之间可以双向沟通,同时借助话题和关系链,用户可自行创造、传播高价值内容,提高 APP 粘性。

创建微社区

1)如果你尚未在友盟注册开发者账号,需要先注册
2)如果你之前已经在友盟注册了开发者账户,可以直接使用该账户登录。
3)得到账户之后到友盟微社区官网进行登录,登录成功之后并进入到"我的社区",点击**添加新社区**,输出社区相关信息之后点击创建即可。
4)然后点击新创建的社区的"社区管理",进入到社区设置页面,选择"应用"一栏,然后再选择"创建新应用"或者"添加新应用",此时你可以新建应用或者从已有的应用中选择,填写完应用基本信息后,点击"创建"即可。
5)此时您就会得到友盟Appkey。

注:一个微社区可对应多个Appkey。

详情请看产品文档使用流程

下载并安装

友盟微社区iOS SDK下载最新的SDK。

解压文件后把文件夹umeng_community_ios_sdk_xxx添加到Xcode工程中。

安装SDK

环境配置

添加相应的Framework

请在你的xcode工程添加下面的系统framework

Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
CoreLocation.framework
AssetsLibrary.framework
AVFoundation.framework

修改xcode编译选项

  1. 在xcode的info.plist添加一项NSLocationAlwaysUsageDescription 为NSString:""
  2. 在info.plist 增加一项 View controller-based status bar appearance 为YES.
  3. 为了兼容iOS9,需要在Xcode7里工程设置的Build Settings->Enable Bitcode设置成NO,(没有用Xcode7 可以忽略)。
  4. 为了兼容iOS9,需要用如下方式允许用HTTP进行网络连接,(没有用Xcode7可以忽略):

    在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    
    
  5. 如果使用友盟第三方登录或者分享功能,在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>
    
    

代码集成

设置appkey

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

设置消息通知

使用友盟push组件

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组件的要求部署代码,然后根据以下代码,将收到的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];
}

设置第三方登录

  1. 如果使用qq登录的功能,需要添加xcode的一项url scheme:tencent+QQ 开放平台的应用appid,例如tencent100424468 。还有添加一下url scheme:“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。另外需要在你的工程的info.plist设置Bundle display name。

  2. 若果使用微信登录的功能,需要添加一项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"];
}

进阶使用

请参考详细集成文档。