Commit 27a077ce by pidan

Merge branch 'feature/私享房需求' of http://git.yabolive.net:88/pidan/FuSiLive into feature/私享房需求

* 'feature/私享房需求' of http://git.yabolive.net:88/pidan/FuSiLive:
  解决了离线推送的问题
  尝试解决通知的bug
  通知测试版本
  整理翻译
parents 0d6d0d1e c37dd5eb
......@@ -8,6 +8,7 @@
import UIKit
import RxCocoa
import RxSwift
import SwiftyJSON
@objcMembers open class FUSSwiftCacheDataShare: NSObject {
......@@ -82,6 +83,17 @@ import RxSwift
set { FUSSwiftCacheDataShare.share.isNewRegister.accept(newValue) }
}
// - test part
/// 测试数据
@objc public var oc_testDataList: [String] = .init()
/// 添加测试数据
@objc public static func fus_addTestLog(msg: String) {
// FUSSwiftCacheDataShare.share.oc_testDataList.append(msg)
}
@objc public static func fus_addTestLog(title: String, object: [AnyHashable: Any]){
// FUSSwiftCacheDataShare.share.oc_testDataList.append(title + (JSON(object).rawString() ?? ""))
}
// - swift PART
/// 当前是否登录
public let isLogin: BehaviorRelay<Bool> = .init(value: false)
......
"告诉朋友前往应用商店搜寻“FusiYa”" = "告诉朋友前往应用商店搜寻“FusiYa”";
"告诉朋友前往应用商店搜寻“Fusi Live”" = "告诉朋友前往应用商店搜寻“Fusi Live”";
"告诉朋友前往自己手机熟悉的应用商店,并搜寻“FusiYa” 关键词" = "告诉朋友前往自己手机熟悉的应用商店,并搜寻“FusiYa” 关键词";
"告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Live” 关键词" = "告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Live” 关键词";
"很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的关注!" = "很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的关注!";
"嗨,我刚加入Fusi Live,希望和你成为朋友。" = "嗨,我刚加入Fusi Live,希望和你成为朋友";
"很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的追踪!" = "很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的追踪!";
"请维护聊天秩序,勿传播低俗、引诱、暴露图片、敏感内容及广告等,违者将封停帐号。Fusi一刻,包你欢乐!" = "请维护聊天秩序,勿传播低俗、引诱、暴露图片、敏感内容及广告等,违者将封停帐号。Fusi一刻,包你欢乐!";
"FUSI 新星" = "FUSI 新星";
"手机的位置服务未开放,无法使用此功能。请设置并允许Fusi访问位置信息" = "手机的位置服务未开启,无法使用此功能。请设置并允许Fusi访问位置信息";
"Fusi Share" = "Fusi Share";
"Fusi" = "Fusi";
"输入Fusi用户的昵称或ID进行搜索" = "输入Fusi用户的昵称或ID进行搜索";
"嗨,我刚加入Fusi Club,希望和你成为朋友。" = "嗨,我刚加入Fusi Live,希望和你成为朋友";
"请勿使用第三方平台进行交易,谨防被骗。一经查出永久封号冻结余额,Fusi将保留追求相关法律责任的权利,平台只认可Fusi内的记录作为有效凭证" = "请勿使用第三方平台进行交易,谨防被骗。一经查出永久封号冻结余额,Fusi将保留追求相关法律责任的权利,平台只认可Fusi内的记录作为有效凭证";
"输入Fusi ID或昵称" = "输入Fusi ID或昵称";
"Fusi ID" = "Fusi ID";
"需要獲取所有照片權限,請在「設置」-「Fusi Club」-「照片」中選擇「所有照片」" = "需要获取所有照片权限,请在「设置」-「Fusi Club」-「照片」中选择「所有照片」";
"FusiClub" = "FusiClub";
"告诉朋友前往应用商店搜寻“Fusi Club”" = "告诉朋友前往应用商店搜寻“Fusi Club”";
"告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Club” 关键词" = "告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Club” 关键词";
"很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的关注!" = "很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的关注!";
"您所在的中国大陆地区无法使用Fusi" = "您所在的中国大陆地区无法使用Fusi";
"需要输入密码进入直播屋" = "需要输入密码进入直播屋";
"很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的关注!" = "很遗憾,您的年龄未满足FusiYa的註册条件。但是还是非常感谢对我们的关注!";
"回撩并关注" = "回撩并追踪";
......@@ -914,7 +952,7 @@
"跳过" = "跳过";
"很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的追踪!" = "很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的追踪!";
"很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的追踪!" = "很遗憾,您的年龄未满足FusiYa的註册条件。但是还是非常感谢对我们的追蹤!";
"1分 (很差)" = "1分 (很差)";
......@@ -2028,8 +2066,6 @@
"樱花" = "樱花";
"嗨,我刚加入FusiYa,希望和你成为朋友。" = "嗨,我刚加入FusiYa,希望和你成为朋友";
"连麦成功" = "连麦成功";
"请输入赠送数量" = "请输入赠送数量";
......@@ -2786,8 +2822,6 @@
"上一月" = "上一月";
"FusiYa" = "FusiYa";
"更高的清晰度对手机性能、网络性能要求更高。请确保手机散热良好,网络连接通畅。" = "更高的清晰度对手机性能、网络性能要求更高。请确保手机散热良好,网络连接通畅。";
"日期:" = "日期:";
......@@ -3042,3 +3076,99 @@
"今天" = "今天";
"您已切换至关注主播再次点击可恢复全部" = "您已切换至关注主播再次点击可恢复全部";
"您已切换至全部主播再次点击可恢复关注" = "您已切换至全部主播再次点击可恢复关注";
"私享屋-密码:" = "私享屋-密码:";
"仅公开屋可进行PK" = "仅公开屋可进行PK";
"无法分享私享屋" = "无法分享私享屋";
"公开屋" = "公开屋";
"私享屋" = "私享屋";
"玩家正确输入密码后可进入屋内" = "玩家正确输入密码后可进入屋内";
"房间已切换到私享屋模式,仅追踪直播超过24小时的粉丝可进入房间,直播时长不计入直播奖励活动" = "房间已切换到私享屋模式,仅追蹤直播超过24小时的粉丝可进入房间,直播时长不计入直播奖励活动";
"设置私享屋密码" = "设置私享屋密码";
"输入密码,打开窗帘" = "输入密码,打开窗帘";
"私信问密码" = "私信问密码";
"打开" = "打开";
"密码设置错误" = "密码设置错误";
"密码错误,请重新输入" = "密码错误,请重新输入";
"我在私享屋直播" = "我在私享屋直播";
"需要输入密码进入直播屋~" = "需要输入密码进入直播屋~";
"密码:" = "密码:";
"选择您要使用的社交媒体,发送社交媒体邀请给超过%@天未登入的老玩家" = "选择您要使用的社交媒体,发送社交媒体邀请给超过%@天未登入的老玩家";
"拷贝您的专属邀请链接,发送链接给超过%@天未登入的老玩家,访问网页可下载。" = "拷贝您的专属邀请链接,发送链接给超过%@天未登入的老玩家,访问网页可下载。";
"保存您的邀请QRCode图片,超过%@天未登入的老玩家通过扫描QRCode可以下载" = "保存您的邀请QRCode图片,超过%@天未登入的老玩家通过扫描QRCode可以下载";
"告诉超过%@天未登入的老玩家前往自己手机熟悉的应用商店,并搜寻%@关键词" = "告诉超过%@天未登入的老玩家前往自己手机熟悉的应用商店,并搜寻%@关键词";
"定制宣传图邀请" = "定制宣传图邀请";
"我的邀请码QRCode" = "我的邀请码QRCode";
"发送我的专属QRcode给好友完成使者绑定" = "发送我的专属QRcode给好友完成使者绑定";
"召回任务" = "召回任务";
"选择召回方式" = "选择召回方式";
"召回流失族人" = "召回流失族人";
"%@天以上未登入%@的玩家,将会自动断开使者关系" = "%@天以上未登入%@的玩家,将会自动断开使者关系";
"流失族人" = "流失族人";
"族人关系" = "族人关系";
"召唤老玩家回归" = "召唤老玩家回归";
"今日使者奖励" = "今日使者奖励";
"领取奖励" = "领取奖励";
"全部领取" = "全部领取";
"明日可领取" = "明日可领取";
"流失族人%@" = "流失族人%@";
"最近30天内活跃的族人" = "最近30天内活跃的族人";
"我的邀请码" = "我的邀请码";
"保存QRCode到您的相册,将此图片发送给您要邀请的好友扫描即可完成绑定您为使者和成功注册在部分国家和地区,只有完成使者绑定对方才能注册成功" = "保存QRCode到您的相册,将此图片发送给您要邀请的好友扫描即可完成绑定您为使者和成功註册在部分国家和地区,只有完成使者绑定对方才能註册成功";
"官网:%@" = "官网:%@";
"欢迎回归" = "欢迎回归";
"许久未见,恭迎回归。回归7日内完成储值可以获得回归大礼包奖励。" = "许久未见,恭迎回归。回归7日内完成储值可以获得回归大礼包奖励。";
"回归大礼包" = "回归大礼包";
"榜单" = "榜单";
"召回" = "召回";
"使者奖励领取" = "使者奖励领取";
"请联系您的邀请人获得邀请QRCode" = "请联系您的邀请人获得邀请QRCode";
"告诉朋友前往应用商店搜寻“Fusi Live”" = "告訴朋友前往應用商店搜尋“Fusi Live”";
"告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Live” 关键词" = "告訴朋友前往自己手機熟悉的應用商店,並搜尋“Fusi Live” 關鍵詞";
"很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的关注!" = "很遺憾,您的年龄未滿足Fusi的註冊條件。但是還是非常感謝對我們的關注!";
"嗨,我刚加入Fusi Live,希望和你成为朋友。" = "嗨,我剛加入Fusi Live,希望和你成為朋友";
"很遗憾,您的年龄未满足Fusi的注册条件。但是还是非常感谢对我们的追踪!" = "很遺憾,您的年龄未滿足Fusi的註冊條件。但是還是非常感謝對我們的追蹤!";
"请维护聊天秩序,勿传播低俗、引诱、暴露图片、敏感内容及广告等,违者将封停帐号。Fusi一刻,包你欢乐!" = "請維護聊天秩序,勿傳播低俗、引誘、暴露圖片、敏感內容及廣告等,違者將封停帳號。Fusi一刻,包你歡樂!";
"FUSI 新星" = "FUSI 新星";
"手机的位置服务未开放,无法使用此功能。请设置并允许Fusi访问位置信息" = "手機的位置服務未開啟,無法使用此功能。請設置并允許Fusi訪問位置信息";
"Fusi Share" = "Fusi Share";
"Fusi" = "Fusi";
"输入Fusi用户的昵称或ID进行搜索" = "輸入Fusi用戶的暱稱或ID進行搜索";
"嗨,我刚加入Fusi Club,希望和你成为朋友。" = "嗨,我剛加入Fusi Live,希望和你成為朋友";
"请勿使用第三方平台进行交易,谨防被骗。一经查出永久封号冻结余额,Fusi将保留追求相关法律责任的权利,平台只认可Fusi内的记录作为有效凭证" = "請勿使用第三方平台進行交易,謹防被騙。一經查出永久封號凍結餘額,Fusi將保留追求相關法律責任的權利,平台只認可Fusi內的記錄作為有效憑證";
"输入Fusi ID或昵称" = "輸入Fusi ID或暱稱";
"Fusi ID" = "Fusi ID";
"需要獲取所有照片權限,請在「設置」-「Fusi Club」-「照片」中選擇「所有照片」" = "需要獲取所有照片權限,請在「設置」-「Fusi Club」-「照片」中選擇「所有照片」";
"FusiClub" = "FusiClub";
"告诉朋友前往应用商店搜寻“Fusi Club”" = "告訴朋友前往應用商店搜尋“Fusi Club”";
"告诉朋友前往自己手机熟悉的应用商店,并搜寻“Fusi Club” 关键词" = "告訴朋友前往自己手機熟悉的應用商店,並搜尋“Fusi Club” 關鍵詞";
"您所在的中国大陆地区无法使用Fusi" = "您所在的中國大陸地區無法使用Fusi";
"需要输入密码进入直播屋" = "需要輸入密碼進入直播屋";
"很遗憾,您的年龄未满足FusiYa的注册条件。但是还是非常感谢对我们的关注!" = "很遺憾,您的年龄未滿足FusiYa的註冊條件。但是還是非常感謝對我們的關注!";
......@@ -3130,3 +3171,4 @@
"使者奖励领取" = "使者獎勵領取";
"请联系您的邀请人获得邀请QRCode" = "請聯繫您的邀請人獲得邀請QRCode";
......@@ -675,7 +675,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260013;
CURRENT_PROJECT_VERSION = 202506260015;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO;
......@@ -943,7 +943,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260013;
CURRENT_PROJECT_VERSION = 202506260015;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO;
......
......@@ -56,6 +56,7 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
// 第一次启动执行
[self firstLaunchHandle];
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
[self fus_appStartPermissionCheckWithOptions:launchOptions];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
......@@ -302,7 +303,7 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
}
}
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
//#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// iOS 10: 点击通知进入App时触发,在该方法内统计有效用户点击数
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler {
......@@ -331,12 +332,12 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
[FUSRouter.chatRouter fus_chatWithUser:userInfo[@"uid"] nickname:@"" face:@""];
}
#endif
//#endif
- (void)handleNotificationEventWithContent:(NSDictionary *)content notificontent:(UNNotificationContent *)notificontent{
// 个推
NSDictionary *transmissionContent = [content[@"transmissionContent"] converToDictionary];
__block NSDictionary *transmissionContent = [content[@"transmissionContent"] converToDictionary];
__block BOOL isChatNotification = NO;
......@@ -367,6 +368,7 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
}
if ([NSDictionary isNull:transmissionContent] == NO) {
MJWeakSelf
[FUSRouter.userRouter fus_loginSucceedListener:^{
......@@ -375,7 +377,7 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
// 准备上报的材料
NSMutableDictionary *reqDataJSON = [[NSMutableDictionary alloc] initWithDictionary:[transmissionContent copy]];
reqDataJSON[@"data"][@"title"] = notificontent.title;
reqDataJSON[@"data"][@"title"] = notificontent.title ?: @"";
if ([reqDataJSON[@"data"][@"text"] stringValue].length <= 0) {
reqDataJSON[@"data"][@"text"] = notificontent.body;
......@@ -458,7 +460,6 @@ typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
NSString *cacheUDKey = [FUSLiveUDKeys fus_LiveRoomPasswordCacheUDKEY:userId];
[[NSUserDefaults standardUserDefaults] setValue:password forKey:cacheUDKey];
}
[FUSRouter.liveRouter fus_enterLiveRoom:userId];
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:5 reqEventType:1 extraInfo:@"" extraJson:logExtraJson roomId:userId];
break;
......
......@@ -7,12 +7,12 @@
<key>FUSChatCenterBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>84</integer>
<integer>83</integer>
</dict>
<key>FUSChatCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>87</integer>
<integer>88</integer>
</dict>
</dict>
</dict>
......
......@@ -7,7 +7,7 @@
<key>FUSShowRoomBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>88</integer>
<integer>87</integer>
</dict>
<key>FUSShowRoomModule.xcscheme_^#shared#^_</key>
<dict>
......
......@@ -123,6 +123,7 @@
00E502302E0BA65600579DB0 /* FUSMyInviteQRCodeDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E5022F2E0BA65600579DB0 /* FUSMyInviteQRCodeDownloadView.swift */; };
00E502322E0BD68E00579DB0 /* FUSInviteRecallWellcomeAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E502312E0BD68E00579DB0 /* FUSInviteRecallWellcomeAlertView.swift */; };
00E502342E0BEEE200579DB0 /* FUSInviteConfigHalfWebAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E502332E0BEEE200579DB0 /* FUSInviteConfigHalfWebAlertView.swift */; };
00E502EA2E162B0D00579DB0 /* FUSNotificationTestController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E502E92E162B0D00579DB0 /* FUSNotificationTestController.swift */; };
9E8D0BED6061C8C88FBF8686 /* Pods_FUSUserCenterModule.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BED3EAC4EA2F921CB5B2FEE8 /* Pods_FUSUserCenterModule.framework */; };
BE189A2D2C7323FE0008418B /* FSRDynamicImModel.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1899A72C7323FE0008418B /* FSRDynamicImModel.h */; };
BE189A2E2C7323FE0008418B /* FSRDynamicImModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1899A82C7323FE0008418B /* FSRDynamicImModel.m */; };
......@@ -1079,6 +1080,7 @@
00E5022F2E0BA65600579DB0 /* FUSMyInviteQRCodeDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSMyInviteQRCodeDownloadView.swift; sourceTree = "<group>"; };
00E502312E0BD68E00579DB0 /* FUSInviteRecallWellcomeAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSInviteRecallWellcomeAlertView.swift; sourceTree = "<group>"; };
00E502332E0BEEE200579DB0 /* FUSInviteConfigHalfWebAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSInviteConfigHalfWebAlertView.swift; sourceTree = "<group>"; };
00E502E92E162B0D00579DB0 /* FUSNotificationTestController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSNotificationTestController.swift; sourceTree = "<group>"; };
29DC17A1A1D4B29CA3BB6003 /* Pods-FUSUserCenterModule.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FUSUserCenterModule.debug.xcconfig"; path = "Target Support Files/Pods-FUSUserCenterModule/Pods-FUSUserCenterModule.debug.xcconfig"; sourceTree = "<group>"; };
BE1899A72C7323FE0008418B /* FSRDynamicImModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSRDynamicImModel.h; sourceTree = "<group>"; };
BE1899A82C7323FE0008418B /* FSRDynamicImModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSRDynamicImModel.m; sourceTree = "<group>"; };
......@@ -2196,6 +2198,7 @@
00B45E4C2D9401CE00FF138F /* FUSInviteRewardController.swift */,
00B45E4D2D9401CE00FF138F /* FUSMyEmissaryQRCodeController.swift */,
00E502252E0A947100579DB0 /* FUSInviteEmissaryRewardController.swift */,
00E502E92E162B0D00579DB0 /* FUSNotificationTestController.swift */,
);
path = InviteReward;
sourceTree = "<group>";
......@@ -4528,10 +4531,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FUSUserCenterModule/Pods-FUSUserCenterModule-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FUSUserCenterModule/Pods-FUSUserCenterModule-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FUSUserCenterModule/Pods-FUSUserCenterModule-resources.sh\"\n";
......@@ -4897,6 +4904,7 @@
BE189A402C7323FE0008418B /* FSRPrivacyModel.m in Sources */,
BE78CCE82C538D8000F38855 /* FUSImAnchorViewController.m in Sources */,
BE78CC612C538D7F00F38855 /* UIControl+WGButtonExtension.m in Sources */,
00E502EA2E162B0D00579DB0 /* FUSNotificationTestController.swift in Sources */,
BE78CB1E2C538D7E00F38855 /* FUSSetUserInfoViewController.m in Sources */,
BE78CC3B2C538D7F00F38855 /* FUSNewsFeedLikeListViewController.m in Sources */,
BE189A542C7323FE0008418B /* FSRLoginViewController.m in Sources */,
......
......@@ -7,12 +7,12 @@
<key>FUSUserCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>83</integer>
<integer>89</integer>
</dict>
<key>FUSUserCenterModuleBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>89</integer>
<integer>84</integer>
</dict>
</dict>
</dict>
......
//
// FUSNotificationTestController.swift
// FUSUserCenterModule
//
// Created by aaa on 2025/7/3.
//
import UIKit
class FUSNotificationTestController: FUSBaseViewController {
private let tableView = UITableView(frame: .zero)
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
self.title = .fus_localString("notification")
self.showBackBtn = true
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}
tableView.backgroundColor = .white
tableView.separatorStyle = .none
tableView.showsVerticalScrollIndicator = false
tableView.showsHorizontalScrollIndicator = false
tableView.delegate = self
tableView.dataSource = self
tableView.register(FUSNotificationTestCell.self, forCellReuseIdentifier: FUSNotificationTestCell.cellID)
self.view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
tableView.mj_header = .init(refreshingBlock: {[weak self] in
self?.tableView.reloadData()
})
}
}
extension FUSNotificationTestController: UITableViewDelegate, UITableViewDataSource{
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return FUSSwiftCacheDataShare.share.oc_testDataList.count
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 44
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: FUSNotificationTestCell.cellID, for: indexPath) as? FUSNotificationTestCell{
cell.titleLabel.text = FUSSwiftCacheDataShare.share.oc_testDataList[indexPath.row]
return cell
}
return .init()
}
}
class FUSNotificationTestCell: UITableViewCell{
static public let cellID: String = "FUSNotificationTestCell_cellid"
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.selectionStyle = UITableViewCell.SelectionStyle.none
self.makeUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
let titleLabel = UILabel()
func makeUI() {
self.contentView.backgroundColor = .clear
self.backgroundColor = .clear
titleLabel.font = .fus_themeFont(14)
titleLabel.textColor = .fus_textColorRich()
titleLabel.numberOfLines = 0
contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.top.bottom.right.equalToSuperview().inset(20)
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment