企业包卡罗牌充值

This commit is contained in:
fengshuo
2022-05-14 19:26:37 +08:00
committed by liyuhua
parent a2c3da9dc8
commit c606fdb802
2 changed files with 64 additions and 2 deletions

View File

@@ -60,6 +60,22 @@
<string>daeplayapp</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>xdx.api.lecheng163.com</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>xdx.api.uat.lecheng163.com</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>2022111001</string>

View File

@@ -28,6 +28,13 @@
#import "XPRoomViewController.h"
#import "RoomHostDelegate.h"
#import "XPMonentTopicContainerViewController.h"
#import "XPRoomHalfWebView.h"
#ifdef DEBUG
static const NSString *CompanyFirstDomainByWeChatRegister = @"api.uat.lecheng163.com";
#else
static const NSString *CompanyFirstDomainByWeChatRegister = @"api.lecheng163.com";
#endif
typedef NS_ENUM(NSUInteger, RightNavigationPushType){
///h5
@@ -98,6 +105,8 @@ NSString * const kJSOpenRoom = @"openRoom";
NSString * const kJSOpenRoomForGiftId = @"openRoomForGiftId";
NSString * const kProhibitRightSlip = @"prohibitRightSlip";
NSString * const kSaveBase64Image = @"saveBase64Image";
NSString * const kOpenDialogWebview = @"openDialogWebview";
NSString * const kCheckResultFinish = @"checkResultFinish";
@implementation XPWebViewController
@@ -161,6 +170,28 @@ NSString * const kSaveBase64Image = @"saveBase64Image";
NSURL *URL = navigationAction.request.URL;
NSString *scheme = [URL scheme];
NSURLRequest *request = navigationAction.request;
///
NSString *absoluteString = [navigationAction.request.URL.absoluteString stringByRemovingPercentEncoding];
static NSString *endPayRedirectURL = nil;
if ([absoluteString hasPrefix:@"https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb"] && ![absoluteString hasSuffix:[NSString stringWithFormat:@"redirect_url=xdx.%@://",CompanyFirstDomainByWeChatRegister]]) {
NSString *redirectUrl = nil;
if ([absoluteString containsString:@"redirect_url="]) {
NSRange redirectRange = [absoluteString rangeOfString:@"redirect_url"];
endPayRedirectURL = [absoluteString substringFromIndex:redirectRange.location+redirectRange.length+1];
// stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]]
redirectUrl = [[absoluteString substringToIndex:redirectRange.location] stringByAppendingString:[NSString stringWithFormat:@"redirect_url=xdx.%@://",CompanyFirstDomainByWeChatRegister]];
}else {
redirectUrl = [absoluteString stringByAppendingString:[NSString stringWithFormat:@"&redirect_url=xdx.%@://",CompanyFirstDomainByWeChatRegister]];
}
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:redirectUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
newRequest.allHTTPHeaderFields = request.allHTTPHeaderFields;
newRequest.URL = [NSURL URLWithString:redirectUrl];
[webView loadRequest:newRequest];
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
// Judge is whether to jump to other app.
if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"]) {
BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:request.URL];
@@ -343,7 +374,6 @@ NSString * const kSaveBase64Image = @"saveBase64Image";
[XPRoomViewController openRoom:uid giftId:giftId viewController:[XCCurrentVCStackManager shareManager].getCurrentVC];
});
}
} else if([message.name isEqualToString:kSaveBase64Image]) {
NSString * base64 = message.body;
NSArray * array = [base64 componentsSeparatedByString:@","];
@@ -352,6 +382,16 @@ NSString * const kSaveBase64Image = @"saveBase64Image";
UIImage * image = [UIImage imageWithData:data];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (__bridge void *)self);
}
} else if([message.name isEqualToString:kOpenDialogWebview]) {
XPRoomHalfWebView *alert = [[XPRoomHalfWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth - 37 * 2, 200)];
alert.url = message.body;
TTPopupService * service = [[TTPopupService alloc] init];
service.shouldDismissOnBackgroundTouch = NO;
service.contentView = alert;
service.style = TTPopupStyleAlert;
[TTPopup popupWithConfig:service];
} else if([message.name isEqualToString:kCheckResultFinish]) {
[TTPopup dismiss];
}
}
}];
@@ -436,7 +476,10 @@ NSString * const kSaveBase64Image = @"saveBase64Image";
// urlString
NSString *noSpaceTextUrl = [_url stringByReplacingOccurrencesOfString:@" " withString:@""];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:noSpaceTextUrl]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:noSpaceTextUrl]];
if ([_url containsString:@"wx.tenpay"]) {
[request setValue:[NSString stringWithFormat:@"xdx.%@://", CompanyFirstDomainByWeChatRegister] forHTTPHeaderField:@"Referer"];
}
[self.webview loadRequest:request];
}
@@ -683,6 +726,9 @@ NSString * const kSaveBase64Image = @"saveBase64Image";
[_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kProhibitRightSlip];
///
[_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kSaveBase64Image];
//
[_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kOpenDialogWebview];
[_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kCheckResultFinish];
}
return _userContentController;
}