帮助与文档

> >

一、获取AppKey和AppSecret

打开Mob官网,在官网选择登录或注册,新用户请先注册,老用户请直接登录。

mob

 

注册界面如下图:

mob_reg

 

1.2 注册或登录完成后,会返回至首页,点击右上角的“进入后台”,会跳转至管理后台,点击下拉列表,选择“创建新应用”。如下图:

无标题

输入应用名称后,点击“保存”,如下图:
AB51BC2C-ED31-4D17-B2C2-72EC5254BD8F

1.3 应用创建后在左边导航栏点击“添加产品”,如下图:

1

 

在产品列表中选择BBSSD并点击“马上开始”【在启用之前会显示“马上开始”,启用之后,会显示“查看详情”】,如下图:

2

 

此时左边导航栏就能看到您添加的产品 ,点击“概况”即可看到您接下来需要的AppKey和 AppSecret ,如下图:

3

二、下载SDK

获取BBSSDK-iOS版本:下载地址,解压压缩包之后结构如图所示:

4

 

目录说明:
MobProducts:为下载后解压目录,主要包含Sample和SDK两部分。
Sample:内含demo,可直接编译运行。
SDK: 内含SDK以及其所依赖的其他公共库及文件(使用时,请直接将SDK拖入项目,尽量不要随意改变目录结构,以免程序编译运行出错)

三、集成SDK

[以新建一个项目为例]

3.1 建立项目

新建一个基于Single View Application项目【注意将Info.plist文件中的Main Storyboard file base name配置项点击减号“-”删除】,入下图所示:

5

 

3.2 引入SDK

在Xcode9下可以将下载好的SDK文件夹拖入到项目中(拖入项目中时,请务必在此步骤中选择“Create groups for any added folders”单选按钮组,并在复选框勾选“Copy items if needed”。请不要选择“Create folder references for any added folders”,否则一个蓝色的文件夹应用将被添加到项目并且将导致无法找到它的资源),如果在Xcode9上的话,需要先将SDK放在项目文件里,然后右击添加,如图:

导入之后如图所示:

3.3添加依赖库

添加步骤见下图

7

 

必须添加的依赖库如下(Xcode7之后*.dylib后缀名更改为*.tbd)

  • libicucore.dylib
  • libz.dylib
  • libstdc++.dylib
  • JavaScriptCore.framework
  • libsqlite3.0.dylib

3.4配置HTTP选项

8

(如果您的论坛中的图片均支持https协议访问,则无需配置此选项)

3.5配置AppKey和AppSecret
在plist文件里面配置您在第1步注册的应用的appkey和appSecret【注意:配置的名称为MOBAppKey和MOBAppSecret】,如图所示:

9

3.6 配置权限

10

如果需要支持iOS11,请额外添加配置相机、相册权限

  • Privacy - Photo Library Additions Usage Description
  • Privacy - Photo Library Usage Description
  • Privacy - Camera Usage Description

3.7 Build Settings设置

OTHER_LDFLAGS = -ObjC

3.8 分享配置

项目里有使用到分享,请在application didFinishLaunchingWithOptions里进行初始化方法调用,或者使用提供的Demo中的 MOBShareSDKHelper进行配置。
以下几点请注意:
·info.plist 中需要设置 白名单 LSApplicationQueriesSchemes
·info.plist 中需要设置 URL Schemes
具体的配置请参考Demo以及ShareSDK的官方文档:点击进入

3.8 导入头文件

打开*AppDelegate.m(*代表你的工程名字)导入头文件,最新的版本增加了Moblink的依赖,moblink的库必须要存在,需要moblink,还需要引入moblink的头文件:

#import <BBSSDKUI/BBSUIForumHomeViewController.h>
#import <MobLink/MobLink.h> //可选
#import <MobLink/IMLSDKRestoreDelegate.h> //可选

 

3.9 调用方法

在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用相关SDK初始化和UI初始化入口,主要代码如下:

_window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
BBSUIForumHomeViewController *homeVC = [BBSUIForumHomeViewController forumHomeViewControllerWithTitle:@"bbs"];
[self.window setRootViewController:homeVC];
[_window setRootViewController:homeVC];    
[_window makeKeyAndVisible];

BBSSDK如上已经完成,如果需要加Moblink的,需要在加以下配置:

Moblink配置:

在AppDelegate里加入如下代码:

- (void)IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL isRestore, RestoreStyle style))restoreHandler

{   
restoreHandler(YES, RestoreStyleMLDefault);
}

 

然后按照mobink的集成文档配置URL Scheme及Universal Link,具体配置请参考:MobLink官方文档


需要加分享ShareSDK的,需要在加以下配置:

ShareSDK配置:

(1)如果需要微信,QQ等第三方登录,需要先导入ShareSDK,然后和原生登录一样,在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerActivePlatforms方法来初始化SDK并且初始化第三方平台例如微信,QQ等平台,如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/**初始化ShareSDK应用
 
@param activePlatforms
使用的分享平台集合
 @param importHandler (onImport)
导入回调处理,当某个平台的功能需要依赖原平台提供的SDK支持时,需要在此方法中对原平台SDK进行导入操作
 @param configurationHandler (onConfiguration)
配置回调处理,在此方法中根据设置的platformType来填充应用配置信息
 */
[ShareSDK registerActivePlatforms:@[
                            @(SSDKPlatformTypeSinaWeibo),
                            @(SSDKPlatformTypeWechat),
                            @(SSDKPlatformTypeQQ),
                            @(SSDKPlatformTypeFacebook)
]
           onImport:^(SSDKPlatformType platformType)
           {
               switch (platformType)
               {
                  case SSDKPlatformTypeWechat:
                       [ShareSDKConnector connectWeChat:[WXApi class]];
                    break;
                  case SSDKPlatformTypeQQ:
                       [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
                    break;
                  case SSDKPlatformTypeSinaWeibo:
                          [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                    break;
              
                  default:
                    break;
                }
          }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
          {
 
              switch (platformType)
              {
                  case SSDKPlatformTypeSinaWeibo:
                      //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
                      [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
                                                appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
                                              redirectUri:@"http://www.sharesdk.cn"
                                                 authType:SSDKAuthTypeBoth];
                   break;
                  case SSDKPlatformTypeWechat:
                      [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
                                            appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
                   break;
                  case SSDKPlatformTypeQQ:
                      [appInfo SSDKSetupQQByAppId:@"100371282"
                                           appKey:@"aed9b0303e3ed1e27bae87c33761161d"
                                         authType:SSDKAuthTypeBoth];
                   break;
                  case SSDKPlatformTypeFacebook:
                      [appInfo SSDKSetupFacebookByApiKey:@"107704292745179"
                                               appSecret:@"38053202e1a5fe26c80c753071f0b573"
                                            displayName:@"shareSDK"
                                             authType:SSDKAuthTypeBoth];
                    break;
                   default:
                    break;
              }
          }];
return YES;
}
(注意:每一个case对应一个break不要忘记填写,不然很可能有不必要的错误,新浪微博的外部库如果不要客户端分享或者不需要加关注微博的功能可以不添加,否则要添加,QQ,微信,google+这些外部库文件必须要加)

(2)要跳客户端登录需要给对应的平台配置URL Scheme,如下:

微博:wb+appkey;

QQ:tencent+appid;

微信:微信的appid;

facebook:fb+appkey;

 

以及ios9+还需要配置对应平台白名单:

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

具体方法:

1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。

2)、然后给它添加一个需要支持的项目,类型为字符串类型;

FBEF076A-611A-4B43-B8A9-F1825CC08FDA

各平台OpenURL白名单说明

新浪微博

  • sinaweibo,
  • sinaweibohd,
  • sinaweibosso,
  • sinaweibohdsso,
  • weibosdk,
  • weibosdk2.5
  • [后两个若导入新浪SDK则需要]

腾讯微博

  • TencentWeibo,
  • tencentweiboSdkv2
  • [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]

豆瓣

  • 无需配置

开心网

  • 无需配置

微信

  • wechat,
  • weixin

FacebookMessenger

  • fb-messenger

易信

  • yixin,
  • yixinopenapi
  • yixinoauth
  • yixinfav

支付宝

  • alipay,
  • alipayshare

QQ

  • mqqOpensdkSSoLogin, 
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqq,
  • mqqapi
  • timapi

QZONE

  • mqzoneopensdk, 
  • mqzoneopensdkapi,
  • mqzoneopensdkapi19,
  • mqzoneopensdkapiV2,
  • mqqOpensdkSSoLogin,
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqqapi,
  • mqqwpa
  • mqzone,
  • mqq
  • mqqopensdkapiV4

[:若同时使用QQQZONE,则直接添加本格即可]

TIM

  • mqq 
  • mqqapi
  • mqqwpa
  • mqqbrowser
  • mttbrowser
  • mqqOpensdkSSoLogin
  • mqqopensdkapiV2
  • mqqopensdkapiV3
  • mqqopensdkapiV4
  • wtloginmqq2
  • mqzone
  • mqzoneopensdk
  • mqzoneopensdkapi
  • mqzoneopensdkapi19
  • mqzoneopensdkapiV2
  • mqqapiwallet
  • mqqopensdkfriend
  • mqqopensdkdataline
  • mqqgamebindinggroup
  • mqqopensdkgrouptribeshare
  • tencentapi.qq.reqContent
  • tencentapi.qzone.reqContent
  • tim
  • timapi
  • timopensdkfriend
  • timwpa
  • timgamebindinggroup
  • timapiwallet
  • timOpensdkSSoLogin
  • timopensdkgrouptribeshare
  • wtlogintim
  • timopensdkapiV4
  • timgamebindinggroup
  • timopensdkdataline
  • wtlogintimV1
  • timapiV1

Google+

  • googlechrome, 
  • googlechrome-x-callback,
  • hasgplus4,
  • com.google.gppconsent,
  • com.google.gppconsent.2.2.0,
  • com.google.gppconsent.2.3.0,
  • com.google.gppconsent.2.4.0,
  • com.google.gppconsent.2.4.1

人人网

  • renrenapi,
  • renrenios,
  • renreniphone,
  • renren,
  • 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK

Facebook

  • fbauth2
  • fbauth

Twitter

  • 无需配置

Pocket

  • pocket-oauth-v1

Pinterest

  • pinit
  • pinterestsdk.v1

Instagram

  • instagram

WhatsApp

  • whatsapp

Line

  • line
  • lineauth
  • line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)

KakaoTalk

  • kakaolink

KaokaoStory

  • storylink
  • kakaokompassauth
  • storykompassauth
  • kakao+appid 例kakao48d3f524e4a636b08d81b3ceb50f1003

LinkedIn

  • 无需配置

Tumblr

  • 无需配置

非平台类,如短信,复制,邮件等

  • 无需配置

钉钉

  • dingtalk
  • dingtalk-open

美拍

  • mtmv
  • mpsharesdk10
  • mpsharesdk11

YouTube

  • youtube
必看注意:
1.iOS9中,如果没有添加上述白名单,系统会打印类似如下提示:.-canOpenURL: failed for URL: "sinaweibohdsso://xxx" - error: "This app is not allowed to query for scheme sinaweibohdsso”(如下图)如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ
2.添加完上述所需的名单,系统依然会打印类似信息:.-canOpenURL: failed for URL: "sinaweibohdsso://xxx" - error: “null”这是系统打印的信息,目前是无法阻止其打印,即无法消除的
3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。

如果没有设置白名单的话,系统的打印信息如图所示:

屏幕快照 2015-09-17 下午7.03.30

添加完后,系统是依然会打印的,不过error会变成null:

屏幕快照 2015-09-17 下午7.03.36

 

3.10 编译运行项目即可。

11.注意事项

这两个文件夹下都有Masonry,根据需求进行取舍,不然会有重复报错。

附:可参考UI开放源码,git开源地址如下:
1.x:http://git.oschina.net/MobClub/BBSSDKUI-for-iOS

2.x:https://gitee.com/MobClub/BBSSDKUI-for-iOS

 

 

 

 

 

 

 

 

相关文档