Commit b8ec0b09 by ludi

接入订阅相关flutter

parent da6639bf
......@@ -90,7 +90,12 @@ public final class FUSFlutterBridge: NSObject {
resolveFlutterHandleWebURL(webUrl, completion: completion)
}
/// 可承接时直接打开 Flutter 分发页,否则执行原有兜底逻辑。
/// 打开 Flutter 的viewcontroller
/// - Parameters:
/// - webUrl: url
/// - showHeadInUserData: 是否显示导航头
/// - fallback: 失败的回调
@objc public func openFlutterDispatchIfSupported(webUrl: String,
showHeadInUserData: Bool,
fallback: @escaping () -> Void) {
......@@ -306,7 +311,8 @@ public final class FUSFlutterBridge: NSObject {
"api": api,
"isDebug": isDebug ? 1 : 0,
"showHead": showHeadInUserData ? 1 : 0,
"clickUrl": clickUrlInUserData
"clickUrl": clickUrlInUserData,
"subscribeCdn": FUSAPIDNSManager.shareInstance().subCdn
]
}
......
......@@ -22,6 +22,9 @@
@property (nonatomic, copy) NSString *bigCdn;
/// /update/server 返回的订阅专属 CDN 地址
@property (nonatomic, copy) NSString *subCdn;
@property (nonatomic, copy) NSString *payURL;
@property (nonatomic, copy) NSString *openUrl;
......
......@@ -35,6 +35,7 @@
[[FUSAPIDNSManager shareInstance] setOpenUrl:[[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_OPEN_URL] ? [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_OPEN_URL] : @"https://openapi.tealive66.com"];
[FUSAPIDNSManager shareInstance].bigCdn = [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_BIG_CDN] ? [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_BIG_CDN] : @"https://big.bgp.ourpow.com";
[FUSAPIDNSManager shareInstance].subCdn = [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_SUB_CDN] ? [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_SUB_CDN] : @"";
// 使用服务器下发的域名
[FUSCommonHttpRequest fus_updateServerAPIUrlWithSuccess:^(NSDictionary *dataDict, int code) {
......@@ -67,6 +68,8 @@
[FUSAPIDNSManager shareInstance].bigCdn = currentApiDict[@"bigCdn"];
}
[FUSAPIDNSManager shareInstance].subCdn = [NSString isNull:currentApiDict[@"subCdn"]] ? @"" : currentApiDict[@"subCdn"];
if (![NSString isNull:currentApiDict[@"cdn"]]) {
[FUSAPIDNSManager shareInstance].imageDownUrl = [NSString stringWithFormat:@"%@/comm",currentApiDict[@"cdn"]];
} else {
......@@ -136,6 +139,7 @@
NSString *historyWebUrlString = [[NSUserDefaults standardUserDefaults] objectForKey:WEB_URL];
NSString *historyPayUrlString = [[NSUserDefaults standardUserDefaults] objectForKey:PAY_URL];
NSString *historybigcdnUrlString = [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_BIG_CDN];
NSString *historySubcdnUrlString = [[NSUserDefaults standardUserDefaults] objectForKey:CUSTOM_SUB_CDN];
NSString *historyOpenUrlString = [[NSUserDefaults standardUserDefaults] objectForKey:OPEN_URL];
NSString *currentApiUrlString;
......@@ -144,6 +148,7 @@
NSString *currentWebUrlString;
NSString *currentPayUrlString;
NSString *currentBigcdnUrlString;
NSString *currentSubcdnUrlString;
NSString *currentOpenUrlString;
if ([NSString isNull:historyApiUrlString] ||
......@@ -164,6 +169,7 @@
currentWebUrlString = currentApiDict[@"web"];
currentPayUrlString = currentApiDict[@"pay"];
currentBigcdnUrlString = currentApiDict[@"bigCdn"];
currentSubcdnUrlString = [NSString isNull:currentApiDict[@"subCdn"]] ? @"" : currentApiDict[@"subCdn"];
currentOpenUrlString = currentApiDict[@"openUrl"];
} else {
currentApiUrlString = historyApiUrlString;
......@@ -172,6 +178,7 @@
currentWebUrlString = historyWebUrlString;
currentPayUrlString = historyPayUrlString;
currentBigcdnUrlString = historybigcdnUrlString;
currentSubcdnUrlString = [NSString isNull:historySubcdnUrlString] ? @"" : historySubcdnUrlString;
currentOpenUrlString = historyOpenUrlString;
}
......@@ -181,6 +188,7 @@
[[NSUserDefaults standardUserDefaults] setObject:currentWebUrlString forKey:WEB_URL];
[[NSUserDefaults standardUserDefaults] setObject:currentPayUrlString forKey:PAY_URL];
[[NSUserDefaults standardUserDefaults] setObject:currentBigcdnUrlString forKey:CUSTOM_BIG_CDN];
[[NSUserDefaults standardUserDefaults] setObject:currentSubcdnUrlString forKey:CUSTOM_SUB_CDN];
[[NSUserDefaults standardUserDefaults] setObject:currentOpenUrlString forKey:CUSTOM_OPEN_URL];
[[FUSAPIDNSManager shareInstance] setAPIDNS:currentApiUrlString];
......@@ -189,6 +197,7 @@
[[FUSAPIDNSManager shareInstance] setWebURL:currentWebUrlString];
[[FUSAPIDNSManager shareInstance] setPayURL:currentPayUrlString];
[[FUSAPIDNSManager shareInstance] setBigCdn:currentBigcdnUrlString];
[[FUSAPIDNSManager shareInstance] setSubCdn:currentSubcdnUrlString];
[[FUSAPIDNSManager shareInstance] setOpenUrl:currentOpenUrlString];
[FUSCommonHttpRequest fus_updateServerAPIUrlWithSuccess:^(NSDictionary *dataDict, int code) {
NSArray *serversArray = dataDict[@"servers"];
......@@ -218,6 +227,7 @@
NSString *serverWebUrlString = serverApiDict[@"web"];
NSString *serverPayUrlString = serverApiDict[@"pay"];
NSString *serverBigcdnUrlString = serverApiDict[@"bigCdn"];
NSString *serverSubcdnUrlString = serverApiDict[@"subCdn"];
NSString *serverOpenUrlString = serverApiDict[@"openUrl"];
if (![NSString isNullWithString:serverApiUrlString]) {
......@@ -228,6 +238,8 @@
[[FUSAPIDNSManager shareInstance] setBigCdn:serverBigcdnUrlString];
}
[[FUSAPIDNSManager shareInstance] setSubCdn:[NSString isNullWithString:serverSubcdnUrlString] ? @"" : serverSubcdnUrlString];
if (![NSString isNullWithString:serverOpenUrlString]) {
[[FUSAPIDNSManager shareInstance] setOpenUrl:serverOpenUrlString];
}
......@@ -271,6 +283,7 @@
NSString *currentAccountsUrlString = currentApiDict[@"pay"];
NSString *currentWebUrlString = currentApiDict[@"web"];
NSString *currentPayUrlString = currentApiDict[@"pay"];
NSString *currentSubcdnUrlString = [NSString isNull:currentApiDict[@"subCdn"]] ? @"" : currentApiDict[@"subCdn"];
NSString *currentOpenUrlString = currentApiDict[@"openUrl"];
[[NSUserDefaults standardUserDefaults] setObject:currentApiUrlString forKey:API_ADDRESS];
......@@ -278,6 +291,7 @@
[[NSUserDefaults standardUserDefaults] setObject:currentAccountsUrlString forKey:ACCOUNTS_ADDRESS];
[[NSUserDefaults standardUserDefaults] setObject:currentWebUrlString forKey:WEB_URL];
[[NSUserDefaults standardUserDefaults] setObject:currentPayUrlString forKey:PAY_URL];
[[NSUserDefaults standardUserDefaults] setObject:currentSubcdnUrlString forKey:CUSTOM_SUB_CDN];
[[NSUserDefaults standardUserDefaults] setObject:currentOpenUrlString forKey:OPEN_URL];
[[FUSAPIDNSManager shareInstance] setAPIDNS:currentApiUrlString];
......@@ -285,6 +299,7 @@
[[FUSAPIDNSManager shareInstance] setAccountsDNS:currentAccountsUrlString];
[[FUSAPIDNSManager shareInstance] setWebURL:currentWebUrlString];
[[FUSAPIDNSManager shareInstance] setPayURL:currentPayUrlString];
[[FUSAPIDNSManager shareInstance] setSubCdn:currentSubcdnUrlString];
[[FUSAPIDNSManager shareInstance] setOpenUrl:currentOpenUrlString];
}
......
......@@ -34,6 +34,7 @@ extern NSString * const CUSTOM_IMAGE_DOWN_URL;
extern NSString * const CUSTOM_ACCOUNTS_URL;
extern NSString * const CUSTOM_PAY_URL;
extern NSString * const CUSTOM_BIG_CDN;
extern NSString * const CUSTOM_SUB_CDN;
extern NSString * const CUSTOM_WEB_URL;
extern NSString * const CUSTOM_OPEN_URL;
extern NSString * const SOCKET_IP;
......
......@@ -34,6 +34,7 @@ NSString * const CUSTOM_IMAGE_DOWN_URL = @"CustomImageDownUrl";
NSString * const CUSTOM_ACCOUNTS_URL = @"CustomAccountsUrl";
NSString * const CUSTOM_PAY_URL = @"CustomPayUrl";
NSString * const CUSTOM_BIG_CDN = @"CustomBigCdn";
NSString * const CUSTOM_SUB_CDN = @"CustomSubCdn";
NSString * const CUSTOM_WEB_URL = @"CustomWebUrl";
NSString * const CUSTOM_OPEN_URL = @"CustomOpenUrl";
NSString * const SOCKET_IP = @"SocketIp";
......@@ -78,4 +79,3 @@ NSString * const UDKEY_COMMON_GUIDE_PAY_TIPS_CONTENT = @"UDKEY_COMMON_GUIDE_PAY_
}
@end
......@@ -56,6 +56,13 @@ typedef NS_ENUM(NSInteger,FUSZoneMotoJumpPageType) {
@property (nonatomic, copy) NSString *rich; // 富豪指数
@property (nonatomic, strong) NSDictionary *chatWith; // 伴聊信息
@property (nonatomic, strong) NSDictionary *privilege; // vip特权 richPower = 0没有 richPower= 1有
#pragma mark ------------订阅端字段extraData -------------
/// 已订阅(0:否、1:是)
@property (nonatomic, assign) NSInteger inColSub;
/// 订阅栏目URL
@property (nonatomic, copy) NSString *colSubUrl;
#pragma mark ------------海外无用字段-----------------
@property (nonatomic, copy) NSString *bonds; // 债券
@property (nonatomic, copy) NSString *constellation;// 星座
......
......@@ -744,6 +744,7 @@
[weakSelf fus_setTopView];
[weakSelf.myZoneBottomView fus_updateBottomViewWithModel:zoneModel];
weakSelf.tableView.zoneModel = weakSelf.zoneModel;
weakSelf.newsFeedListView.zoneModel = zoneModel;
} failure:^(NSString *msg, NSInteger code) {
if (code == -43) {
if ([UIViewController fus_topViewController] == weakSelf) {
......
......@@ -478,9 +478,11 @@
[FUSHttpHelper postRequestBinaryWithUrl:FUSUserCenterURLs.fus_URL_ZONE_HOME_OWN_V1 params:nil success:^(NSDictionary *dataDict, int code) {
NSDictionary *zoneInfo = [dataDict objectForKey:@"zoneInfo"];
NSDictionary *zoneData = [dataDict objectForKey:@"zoneData"];
NSDictionary *zoneExtra = [dataDict objectForKey:@"zoneExtra"];
FUSZoneInfosModel *zoneModel = [FUSZoneInfosModel fus_modelWithDict:dataDict];
[zoneModel fus_setValueWithDict:zoneData];
[zoneModel fus_setValueWithDict:zoneInfo];
[zoneModel fus_setValueWithDict:zoneExtra];
//获取最新的model
FUSZoneInfosModel *zoneAddInfoModel = [[[FUSCacheDataShare shareStore] zoneInfosDict] objectForKey:zoneModel.uid];
......@@ -526,8 +528,10 @@
[FUSHttpHelper postRequestBinaryWithUrl:FUSUserCenterURLs.fus_URL_ZONE_HOME_OTHER_V1 params:params success:^(NSDictionary *dataDict, int code) {
NSDictionary *zoneData = [dataDict objectForKey:@"zoneData"];
NSDictionary *zoneInfo = [dataDict objectForKey:@"zoneInfo"];
NSDictionary *extraData = [dataDict objectForKey:@"extraData"];
FUSZoneInfosModel *zoneModel = [FUSZoneInfosModel fus_modelWithDict:zoneInfo];
[zoneModel fus_setValueWithDict:zoneData];
[zoneModel fus_setValueWithDict:extraData];
//获取最新的model
FUSZoneInfosModel *zoneAddInfoModel = [[[FUSCacheDataShare shareStore] zoneInfosDict] objectForKey:zoneModel.uid];
//model为空创建
......
......@@ -10,6 +10,7 @@
#import "FUSMyZoneSubscribeCollectionView.h"
#import "FUSDialogView.h"
#import <FUSCommon/FUSCommon-Swift.h>
typedef enum {
FUSMyZoneNewsFeedTabTypeShare = 0,
......@@ -71,11 +72,9 @@ typedef enum {
NSMutableArray<NSNumber *> *tabTypeList = [NSMutableArray arrayWithArray:@[
@(FUSMyZoneNewsFeedTabTypeShare),
@(FUSMyZoneNewsFeedTabTypeAlbum),
@(FUSMyZoneNewsFeedTabTypeLike)
@(FUSMyZoneNewsFeedTabTypeLike),
@(FUSMyZoneNewsFeedTabTypeSubscribe)
]];
if (!FUSConfig.sharedInstanced.devConfigs.appStatus) {
[tabTypeList addObject:@(FUSMyZoneNewsFeedTabTypeSubscribe)];
}
self.tabTypeList = [tabTypeList copy];
}
......@@ -138,7 +137,7 @@ typedef enum {
return NO;
}
[self fus_showSubscribeToast];
[self fus_clickedSubscribeSegment];
[self.segmentControlView fus_setSelectedItem:self.currentPage autoCallBack:NO];
return YES;
}
......@@ -173,9 +172,20 @@ typedef enum {
}
}
// 弹出订阅提示文案
- (void)fus_showSubscribeToast {
[FUSDialogView fus_showDialog:[NSString fus_versionLocalString:@"订阅"]];
// 点击订阅订阅
- (void)fus_clickedSubscribeSegment {
if (self.forbidEnterSubscribePage == YES) {
// 当不可以点击的时候就直接跳过去
if (FUSConfig.sharedInstanced.devConfigs.appStatus) {
// sh 不跳
return;
}
[[FUSFlutterBridge shared] openFlutterDispatchIfSupportedWithWebUrl:self.zoneModel.colSubUrl showHeadInUserData:YES fallback:^{
}];
}
}
- (void)fus_initSegmentView {
......@@ -388,9 +398,17 @@ typedef enum {
- (void)setZoneModel:(FUSZoneInfosModel *)zoneModel{
_zoneModel = zoneModel;
if (FUSConfig.sharedInstanced.devConfigs.appStatus) {
zoneModel.inColSub = 0;
}
if ([self.tabTypeList containsObject:@(FUSMyZoneNewsFeedTabTypeSubscribe)] && self.subscribeView != nil) {
self.subscribeView.zoneModel = zoneModel;
}
if (zoneModel.inColSub == 1) {
self.forbidEnterSubscribePage = YES;
}
}
@end
......@@ -8,6 +8,7 @@
#import "FUSMyZoneSubscribeCollectionView.h"
#import <FUSFoundation/FUSFoundation-Swift.h>
#import <FUSCommon/FUSCommon-Swift.h>
@interface FUSMyZoneSubscribeCollectionView ()
......@@ -91,9 +92,8 @@
[self.subscribeInfoCardView addSubview:self.userIdLabel];
self.subscribeButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.subscribeButton.userInteractionEnabled = NO;
self.subscribeButton.backgroundColor = [UIColor colorWithWhite:0 alpha:0.12];
self.subscribeButton.titleLabel.font = [UIFont fus_themeBoldFont:16];
self.subscribeButton.backgroundColor = [UIColor colorWithWhite:0 alpha:0.12];
[self.subscribeButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
[self.subscribeButton setTitle:[NSString stringWithFormat:@" %@",[NSString fus_versionLocalString:@"未开启订阅"]] forState:UIControlStateNormal];
[self.subscribeButton setImage:[FUSUserCenterBunble imageNamed:@"zone_subscribe_info_subscribeBtn_off"] forState:UIControlStateNormal];
......@@ -102,6 +102,8 @@
[self.subscribeContainerView addSubview:self.subscribeButton];
self.contentSize = CGSizeMake(CGRectGetWidth(self.bounds), self.subscribeContentHeight);
[self.subscribeButton addTarget:self action:@selector(subscribeButtonDidClicked) forControlEvents:UIControlEventTouchUpInside];
}
/// 跟随外层布局更新固定内容容器尺寸。
......@@ -129,6 +131,16 @@
return self.subscribeContentHeight;
}
#pragma mark --- button did clicked
- (void)subscribeButtonDidClicked {
BOOL isMyZone = [[self.zoneModel.uid description] isEqualToString:[FUSCacheDataShare shareStore].userDetailInfo.uid];
if (isMyZone) {
[[FUSFlutterBridge shared] openFlutterDispatchIfSupportedWithWebUrl:self.zoneModel.colSubUrl showHeadInUserData:YES fallback:^{
}];
}
}
#pragma mark --- setter
- (void)setZoneModel:(FUSZoneInfosModel *)zoneModel {
_zoneModel = zoneModel;
......@@ -136,6 +148,20 @@
[self.avatarImageView setImageWithURL:[NSURL URLWithString:zoneModel.face.fus_bigCdn] placeholder:[UIImage fus_defaultIcon]];
self.nameLabel.text = zoneModel.nickname;
self.userIdLabel.text = [NSString stringWithFormat:@"ID: %@",zoneModel.uid];
BOOL isMyZone = [[zoneModel.uid description] isEqualToString:[FUSCacheDataShare shareStore].userDetailInfo.uid];
if (isMyZone) {
self.subscribeButton.backgroundColor = [UIColor fus_themeColor];
[self.subscribeButton setTitleColor:[UIColor fus_textColorRich] forState:UIControlStateNormal];
[self.subscribeButton setTitle:[NSString stringWithFormat:@"%@",[NSString fus_versionLocalString:@"点击开启订阅"]] forState:UIControlStateNormal];
[self.subscribeButton setImage:nil forState:UIControlStateNormal];
}
else {
self.subscribeButton.backgroundColor = [UIColor colorWithWhite:0 alpha:0.12];
[self.subscribeButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
[self.subscribeButton setTitle:[NSString stringWithFormat:@" %@",[NSString fus_versionLocalString:@"未开启订阅"]] forState:UIControlStateNormal];
[self.subscribeButton setImage:[FUSUserCenterBunble imageNamed:@"zone_subscribe_info_subscribeBtn_off"] forState:UIControlStateNormal];
}
}
@end
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