@@ -27,8 +27,10 @@
# import "Api+Mine.h"
# import "XPSkillCardPlayerManager.h"
# import "XPWebViewNavView.h"
# import "SessionViewController.h"
# import "XPMonentTopicContainerViewController.h"
typedef NS_ENUM ( NSUInteger , RightNavigationPushType ) {
// / 跳 转 h5 页 面
RightNavigationPushType_Web = 1 ,
@@ -429,11 +431,135 @@ NSString * const kJSOpenAppConcernedChat = @"openAppConcernedChat";
[ XPRoomViewController openRoom : uid giftId : giftId viewController : [ XCCurrentVCStackManager shareManager ] . getCurrentVC ] ;
} ) ;
}
} else if ( [ message . name isEqualToString : kJSChargePayClickPage ] ) {
if ( message . body ! = nil && self . model . diamonds ! = nil ) {
NSString * type = [ NSString stringWithFormat : @ "%@" , message . body ] ;
}
} else if ( [ message . name isEqualToString : kJSOpenChargePage ] ) {
if ( self . delegate && [ self . delegate respondsToSelector : @ selector ( payHandler ) ] ) {
[ self . delegate payHandler ] ;
return ;
}
[ TTPopup dismiss ] ;
if ( self . isPush ) {
XPWebViewController * webVC = [ [ XPWebViewController alloc ] init ] ;
webVC . url = [ NSString stringWithFormat : URLWithType ( kThirdPartyPay ) , @ "4" , [ YYUtility deviceID ] ] ;
webVC . isPush = YES ;
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController pushViewController : webVC animated : YES ] ;
return ;
}
UIViewController * controller = [ XCCurrentVCStackManager shareManager ] . getCurrentVC ;
if ( controller . presentingViewController ) {
[ controller dismissViewControllerAnimated : NO completion : nil ] ;
dispatch_after ( dispatch_time ( DISPATCH_TIME _NOW , ( int64_t ) ( 0.5 * NSEC_PER _SEC ) ) , dispatch_get _main _queue ( ) , ^ {
XPWebViewController * webVC = [ [ XPWebViewController alloc ] init ] ;
webVC . isPush = YES ;
webVC . url = [ NSString stringWithFormat : URLWithType ( kThirdPartyPay ) , @ "4" , [ YYUtility deviceID ] ] ;
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController pushViewController : webVC animated : YES ] ;
} ) ;
} else {
XPWebViewController * webVC = [ [ XPWebViewController alloc ] init ] ;
webVC . isPush = YES ;
webVC . url = [ NSString stringWithFormat : URLWithType ( kThirdPartyPay ) , @ "4" , [ YYUtility deviceID ] ] ;
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController pushViewController : webVC animated : YES ] ;
}
} else if ( [ message . name isEqualToString : kOpenPersonPage ] ) {
NSString * uid = [ NSString stringWithFormat : @ "%@" , message . body ] ;
if ( uid . integerValue > 0 ) {
[ TTPopup dismiss ] ;
XPMineUserInfoViewController * userInfoVC = [ [ XPMineUserInfoViewController alloc ] init ] ;
userInfoVC . uid = uid . integerValue ;
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController pushViewController : userInfoVC animated : YES ] ;
}
} else if ( [ message . name isEqualToString : kJSInitNav ] ) {
[ self initNav : message . body ] ;
} else if ( [ message . name isEqualToString : kJSGetRoomUid ] ) {
NSString * js = [ NSString stringWithFormat : @ "getMessage(\" roomUid \ ",\" % @ \ ")" , self . roomUid ] ;
[ self . webview evaluateJavaScript : js completionHandler : ^ ( id _Nullable other , NSError * _Nullable error ) {
NSLog ( @ "%@" , error ) ;
} ] ;
} else if ( [ message . name isEqualToString : kInitShowNav ] ) {
if ( ( ( NSNumber * ) message . body ) . intValue = = 0 ) {
if ( self . InitShowNavBlock ) {
self . InitShowNavBlock ( YES ) ;
return ;
}
if ( self . navigationController ) {
[ self . navigationController setNavigationBarHidden : YES ] ;
}
}
} else if ( [ message . name isEqualToString : kCloseWebView ] ) {
if ( self . CloseWebViewBlock ) {
self . CloseWebViewBlock ( YES ) ;
return ;
}
if ( self . navigationController ) {
[ self . navigationController popViewControllerAnimated : YES ] ;
}
} else if ( [ message . name isEqualToString : kJumpAppointPage ] ) {
// h5 与 原 生 交 互 新 协 议
NSDictionary * bodyDict ;
if ( [ message . body isKindOfClass : [ NSDictionary class ] ] ) {
bodyDict = message . body ;
} else if ( [ message . body isKindOfClass : [ NSString class ] ] ) {
NSString * str = ( NSString * ) message . body ;
bodyDict = [ str toJSONObject ] ;
}
NSInteger skyType = [ bodyDict [ @ "routerType" ] integerValue ] ;
[ self handleRouterType : skyType message : message ] ;
} else if ( [ message . name isEqualToString : kJSOpenRoom ] ) {
NSString * uid = [ NSString stringWithFormat : @ "%@" , message . body ] ;
if ( uid . length > 0 ) {
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController . viewControllers enumerateObjectsUsingBlock : ^ ( __kindof UIViewController * _Nonnull obj , NSUInteger idx , BOOL * _Nonnull stop ) {
if ( [ obj isKindOfClass : [ XPRoomViewController class ] ] ) {
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController popToRootViewControllerAnimated : NO ] ;
XPRoomViewController < RoomHostDelegate > * rooomVC = obj ;
[ rooomVC exitRoom ] ;
* stop = YES ;
}
} ] ;
if ( self . view . superview ) {
[ TTPopup dismiss ] ;
}
dispatch_after ( dispatch_time ( DISPATCH_TIME _NOW , ( int64_t ) ( 1 * NSEC_PER _SEC ) ) , dispatch_get _main _queue ( ) , ^ {
[ XPRoomViewController openRoom : uid viewController : [ XCCurrentVCStackManager shareManager ] . getCurrentVC ] ;
} ) ;
}
} else if ( [ message . name isEqualToString : kJSOpenRoomForGiftId ] ) {
NSLog ( @ "%@" , message . body ) ;
NSDictionary * bodyDict ;
if ( [ message . body isKindOfClass : [ NSDictionary class ] ] ) {
bodyDict = message . body ;
} else if ( [ message . body isKindOfClass : [ NSString class ] ] ) {
NSString * str = ( NSString * ) message . body ;
bodyDict = [ str toJSONObject ] ;
}
// 房 间 页 传 参 : uid
NSString * uid = [ NSString stringWithFormat : @ "%@" , bodyDict [ @ "uid" ] ] ;
NSString * giftId = [ NSString stringWithFormat : @ "%@" , bodyDict [ @ "giftId" ] ] ;
if ( uid . length ) {
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController . viewControllers enumerateObjectsUsingBlock : ^ ( __kindof UIViewController * _Nonnull obj , NSUInteger idx , BOOL * _Nonnull stop ) {
if ( [ obj isKindOfClass : [ XPRoomViewController class ] ] ) {
[ [ XCCurrentVCStackManager shareManager ] . getCurrentVC . navigationController popToRootViewControllerAnimated : NO ] ;
XPRoomViewController < RoomHostDelegate > * rooomVC = obj ;
[ rooomVC exitRoom ] ;
* stop = YES ;
}
} ] ;
dispatch_after ( dispatch_time ( DISPATCH_TIME _NOW , ( int64_t ) ( 1 * NSEC_PER _SEC ) ) , dispatch_get _main _queue ( ) , ^ {
[ XPRoomViewController openRoom : uid giftId : giftId viewController : [ XCCurrentVCStackManager shareManager ] . getCurrentVC ] ;
} ) ;
}
}
}
} ] ;
}
}
}
} ] ;
}
# pragma mark - private method
- ( void ) handleRouterType : ( NSInteger ) skyType message : ( WKScriptMessage * ) message {