//
|
// JSAPI.m
|
// BuWanVideo2.0
|
//
|
// Created by Aeline on 2021/5/15.
|
// Copyright © 2021 com.yeshi.buwansheque.ios. All rights reserved.
|
//
|
|
#import "JSAPI.h"
|
#import "dsbridge.h"
|
#import "NSString+YTH.h"
|
|
#define Version [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] //build号
|
#define Package @"com.yeshi.buwanshequ.ios" //相当于包名
|
|
@implementation JSAPI
|
|
- (NSString *)getVersion:(NSString *)msg {
|
return Version;
|
}
|
|
- (NSString *)login:(NSString *)msg {
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"h5Login" object:nil];
|
return msg;
|
}
|
|
- (NSString *)logout:(NSString *)msg {
|
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"buUserInfo"];
|
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"userOnLine"];
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"RELOAD_DATA" object:nil];
|
return msg;
|
}
|
|
|
- (NSString *)getUserInfo:(NSString *)msg {
|
NSMutableDictionary *parms = [[NSMutableDictionary alloc] init];
|
NSDictionary *dictionary = [[NSUserDefaults standardUserDefaults] objectForKey:@"buUserInfo"];
|
|
if (dictionary) {
|
NSMutableDictionary *data = [[NSMutableDictionary alloc] init];
|
NSInteger nowDate = [self nowTimeSwitchTimestamp];
|
if ([dictionary[@"vipExpireTime"] integerValue] > nowDate) {// vip时间大于
|
data[@"isSVip"] = @(YES);
|
|
} else {
|
data[@"isSVip"] = @(NO);
|
}
|
data[@"code"] = dictionary[@"pptvCode"];
|
data[@"nickname"] = dictionary[@"nickName"];
|
data[@"isCoupon"] = @(NO);
|
|
parms[@"code"] = @(1);
|
parms[@"data"] = data;
|
|
} else {
|
parms[@"code"] = @(0);
|
}
|
NSString *json = [self jsonStringToJsonData:parms];
|
return json;
|
}
|
|
|
- (NSString *)tryPlayFinish:(NSString *)msg {
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"tryPlayFinish" object:nil];
|
return msg;
|
}
|
|
- (NSString *)getUid:(NSString *)msg {
|
NSString *ids = [[NSUserDefaults standardUserDefaults] objectForKey:@"LoginUid"];
|
return ids?:@"";
|
}
|
|
- (NSString *)getRequestBaseParams:(id)msg {
|
|
NSMutableDictionary *parms = [NSMutableDictionary new];
|
[parms addEntriesFromDictionary:msg];
|
|
if (!msg[@"Method"]) {
|
[parms setObject:@"1" forKey:@"Method"];
|
}
|
|
[parms setObject:@"ios" forKey:@"Platform"];
|
NSString *sign;
|
if ([YTHsharedManger startManger].Uid) {
|
[parms setObject:[YTHsharedManger startManger].Uid forKey:@"Uid"];
|
sign = [NSString stringWithFormat:@"%@%@%@", parms[@"Method"], [YTHsharedManger startManger].Uid,@"1"];
|
|
}else{
|
sign = [NSString stringWithFormat:@"%@%@%@", parms[@"Method"],[[UIDevice currentDevice].identifierForVendor UUIDString],@"1"];
|
}
|
|
[parms setObject:Version forKey:@"Version"];
|
[parms setObject:Package forKey:@"Package"];
|
[parms setObject:@"1" forKey:@"System"];
|
[parms setObject:[NSString md5:sign] forKey:@"Sign"];
|
[parms setObject:[[UIDevice currentDevice].identifierForVendor UUIDString] forKey:@"Device"];
|
|
NSString *json = [self jsonStringToJsonData:parms];
|
return json;
|
}
|
|
- (NSString *)showLoading:(id)msg {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[SVProgressHUD show];
|
});
|
|
return @"";
|
}
|
|
- (NSString *)hideLoading:(id)msg {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[SVProgressHUD dismiss];
|
});
|
return @"";
|
}
|
|
- (NSString *)toast:(NSString *)msg {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:msg preferredStyle:UIAlertControllerStyleAlert];
|
[[self fetchCurrentViewController] presentViewController:alert animated:YES completion:^{
|
//延时执行
|
dispatch_queue_t q = dispatch_get_main_queue();
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.2 * NSEC_PER_SEC), q, ^{
|
[alert dismissViewControllerAnimated:YES completion:nil];
|
});
|
}];
|
});
|
return @"";
|
}
|
|
- (NSString *)playFinish:(NSString *)msg {
|
return msg;
|
}
|
|
- (void)buyVip:(NSString *)msg completionHandler:(JSCallback)completionHandler {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"buyVip" object:nil userInfo:@{@"code":msg?:@"",@"data" :completionHandler}];
|
});
|
}
|
|
- (NSString *)vipPayFinish:(NSString *)msg {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"vipPayFinish" object:nil userInfo:@{@"code":msg}];
|
});
|
return msg;
|
}
|
|
//decrypt
|
- (NSString *)apiDecode:(NSString *)msg {
|
NSString *result = [NSString decrypt:msg];
|
return result;
|
}
|
|
- (NSString *)jsonStringToJsonData:(id)dic {
|
if (!dic || [dic isEqual:[NSNull null]]) {
|
return @"";
|
}
|
NSError *error;
|
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
|
|
NSString *jsonString = @"";
|
|
if (!jsonData) {
|
NSLog(@"%@",error);
|
|
} else {
|
jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
}
|
NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];
|
|
NSRange range = {0, jsonString.length};
|
[mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
|
|
NSRange range2 = {0, mutStr.length};
|
//去掉字符串中的换行符
|
[mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
|
|
//NSRange range3 = {0,mutStr.length};
|
//去掉字符串中的换行符
|
//[mutStr replaceOccurrencesOfString:@"\\" withString:@"" options:NSLiteralSearch range:range3];
|
return mutStr;
|
}
|
|
- (NSInteger)nowTimeSwitchTimestamp {
|
NSDate *datenow = [NSDate date]; // 现在时间
|
NSInteger timeSp = [datenow timeIntervalSince1970]*1000;
|
return timeSp;
|
}
|
|
- (UIViewController *)fetchCurrentViewController {
|
UIViewController* currentViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
|
BOOL runLoopFind = YES;
|
while (runLoopFind) {
|
if (currentViewController.presentedViewController) {
|
currentViewController = currentViewController.presentedViewController;
|
} else if ([currentViewController isKindOfClass:[UINavigationController class]]) {
|
UINavigationController* navigationController = (UINavigationController* )currentViewController;
|
currentViewController = [navigationController.childViewControllers lastObject];
|
} else if ([currentViewController isKindOfClass:[UITabBarController class]]) {
|
UITabBarController* tabBarController = (UITabBarController* )currentViewController;
|
currentViewController = tabBarController.selectedViewController;
|
} else {
|
NSUInteger childViewControllerCount = currentViewController.childViewControllers.count;
|
if (childViewControllerCount > 0) {
|
currentViewController = currentViewController.childViewControllers.lastObject;
|
return currentViewController;
|
} else {
|
return currentViewController;
|
}
|
}
|
}
|
return currentViewController;
|
}
|
@end
|