# iOS API
*****
## 项目全局配置
```
#import <TMSDK/TMSDK.h>
#import <SetI001/SetI001.h>
//全局配置可以通过TMEngineConfig类和SetI001ConfigInstance类获取,如:
//获取域名
[TMEngineConfig instance].domain
//获取主题色
[TMEngineConfig instance].themeColor
//获取导航栏tintColor颜色,即文字等颜色
[TMEngineConfig instance].navigationTintColor
//导航控制器背景颜色值类型,0:16进制色值字符串(如1479D7),1:图片base64字符串,2:图片网络链接,默认为色值字符串
[TMEngineConfig instance].navigationBarBackgroundType
//导航控制器背景颜色值,值类型参照navigationBarBackgroundType字段
[TMEngineConfig instance].navigationBarBackgroundValue
//获取推送开关状态
[SetI001ConfigInstance instance].apnsEnable
//获取是否仅在wifi下查看图片状态
[SetI001ConfigInstance instance].wifiLookImage
//获取是否自动播放视频状态
[SetI001ConfigInstance instance].autoPlayVideo
```
注意:
因为主题色是后台配置,所以在开发时,需要开发者自行在AppDelegate中添加以下代码进行模拟主题色配置:
```
[TMEngineConfig instance].themeColor = [UIColor orangeColor];
```
## 会员信息配置
```
#import <TMSDK/TMSDK.h>
//获取会员信息配置可以通过TMHttpUserInstance类获取,如:
//头像, 需要判断是否添加域名,可以通过是否包含:// 来判断
[TMHttpUserInstance instance].head_pic
//会员code
[TMHttpUserInstance instance].member_code
//会员id
[TMHttpUserInstance instance].member_id
```
## 登录
在需要登录时,可以通过下面方法,判断是否登录:
```
#import <SetI001/SetI001Tools.h>
/**
检查是否登录
@return 返回是否登录,如果登录返回YES,如果未登录返回NO。
*/
+ (BOOL)tm_checkIsLogin;
```
可以通过下面方法前往登录页面:
```
#import <SetI001/SetI001Tools.h>
/**
跳转到登录页面
@param controller 当前页面的控制器
*/
+ (void)tm_jumpLoginPageWithCurrentPageController:(UIViewController *)controller;
```
综合起来可以这样调用
```
#import <SetI001/SetI001.h>
if (![SetI001Tools tm_checkIsLogin]) {
[SetI001Tools tm_jumpLoginPageWithCurrentPageController:currentController];
return;
}
```
发送验证码
```
/**
发送验证码
@param phoneNumber 手机号
@param state 类型: 1: 登录 2: 密码找回 3: 修改密码 4: 原手机号验证 5: 新手机号验证
@param complate 结果回调, status:1.成功, 2.失败, 3:取消 message:发送验证码结果信息
*/
+ (void)tmuser_sendSMSVerificationCodeWithPhoneNumber:(NSString *)phoneNumber
state:(int)state
complate:(void(^)(int status, NSString *message))complate;
```
如果会员登录后,可以通过下面方式获取当前会员的token
```
#import <TMSDK/TMSDK.h>
[TMHttpUser token]
```
## 全局通知
当登录后会发出名为 “SetI001_Notification_Login” 的通知
当退出登录后会发出名为 “SetI001_Notification_Logout” 的通知
当切换推送状态,会发出名为“SetI001_Notification_Apns”的通知
当切换是否仅在wifi下查看图片状态,会发出名为“SetI001_Notification_WifiLookImage”的通知
当切换是否自动播放视频状态,会发出名为“SetI001_Notification_AutoPlayVideo”的通知
## 清除缓存
APP会员中心的清除缓存功能,会清除Document/Caches、Tmp、Caches三个路径下的缓存,所以在保存自己的配置文件时,需要按照需求进行存放。
## 收藏、历史记录
当组件有收藏和历史记录需求时,需要组件后台调用后端框架提供的[添加收藏](https://www.kancloud.cn/tianma360/admin/1674351)和[添加历史](https://www.kancloud.cn/tianma360/admin/1674356)记录接口,并在相关接口中的扩展字段(extend)填写如下的json字符串信息:
```
{
"iosInfo": {
"native": true,// 跳转界面是否为原生界面
"src": "HViewController",// 跳转以展示的页面,若是h5页面,直接给出链接,若是原生界面,给出继承TMViewController类的控制器类名
"paramStr": "",// 所需参数,会传入TMViewController的paramStr字段,在使用时,可以通过‘- (NSDictionary *)paramDict;’方法获取到传入的参数
"wwwFolder": ""// 若为html组件,对应APP本地html路径
},
"androidInfo": {
"native": false,
"src": "index.html",
"paramStr": "21e364890c730daff9e413660e04d924",
"wwwFolder": "pages/comp01/"
}
}
```
## 自定义配置
如果开发者需要自定义一些项目配置,请在“TMBaseConfig.plist”文件中的features下面添加,可以参考QQ、Wechat字段,然后通过下面方法获取自定义的配置:
```
- (NSDictionary *)featureByName:(NSString *)key
```
在有自定义配置时,请提前告知天马工场
## 跳转绑定手机号页面
在需要手机号时,如果未绑定手机号,可以通过下列方法绑定手机号:
```
#import <SetI001/SetI001Tools.h>
/**
跳转到绑定手机号页面
@param controller 当前页面的控制器
*/
+ (void)tm_jumpBindPhonePageWithCurrentPageController:(UIViewController *)controller;
```
## 功能页面接口
我们开放了下面功能页面:用户可以根据自己需求,跳转进我们的功能页面。其中登录和绑定手机号可以调用上面的跳转接口,也可以自定义跳转:
1.登录页面:SetI001LoginViewController
2.个人中心页面:SetI001MainViewController
3.完善个人资料页面:SetI001ModifyViewController
4.绑定手机号页面:SetI001AddPhoneController