增加ShareView&TTPopup
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
#import "ApiHost.h"
|
||||
#import "YYUtility.h"
|
||||
#import "HttpRequestHelper.h"
|
||||
#import "XCShareView.h"
|
||||
#import "TTPopup.h"
|
||||
#import "XPMacro.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJExtension/MJExtension.h>
|
||||
#import <RPSDK/RPSDK.h>
|
||||
@@ -44,7 +47,7 @@
|
||||
|
||||
@end
|
||||
|
||||
@interface XPWebViewController () <WKNavigationDelegate, WKScriptMessageHandler>
|
||||
@interface XPWebViewController () <WKNavigationDelegate, WKScriptMessageHandler, XCShareViewDelegate>
|
||||
|
||||
@property (strong, nonatomic) WKWebView *webview;
|
||||
@property (strong, nonatomic) UIProgressView *progressView;
|
||||
@@ -85,60 +88,65 @@ NSString * const kJSOpenFaceLiveness = @"openFaceLiveness";
|
||||
[self.view addSubview:self.progressView];
|
||||
}
|
||||
|
||||
|
||||
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
|
||||
if ([message.name isEqualToString:kJSOpenSharePage]) {
|
||||
[self showSuccessToast:@"打开分享面板,尚未实现"];
|
||||
} else if ([message.name isEqualToString:kJSGetUid]) {
|
||||
NSString *uid = [[AccountInfoStorage instance] getUid];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"uid\",%@)", uid];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetTicket]) {
|
||||
NSString *ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"ticket\",\"%@\")",ticket];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetDeviceId]) {
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceId\",\"%@\")",[YYUtility deviceUniqueIdentification]];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetDeviceInfo]) {
|
||||
NSDictionary *basicParmars = [HttpRequestHelper configBaseParmars:[[NSDictionary alloc] init]];
|
||||
NSString *json = [basicParmars mj_JSONString];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceInfo\",%@)", json];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable ohter, NSError * _Nullable error) {
|
||||
NSLog(@"%@", error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSOpenPurse]) {
|
||||
|
||||
} else if ([message.name isEqualToString:kJSOpenChargePage]) {
|
||||
|
||||
} else if ([message.name isEqualToString:kJSOpenFaceLiveness]) {
|
||||
NSString *verifyToken = message.body;
|
||||
[self.webview evaluateJavaScript:@"document.location.href" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
|
||||
NSLog(@"%@", response);
|
||||
NSString *currentUrl = [NSString stringWithFormat:@"%@", response];
|
||||
if (currentUrl != nil && [currentUrl containsString:API_HOST_URL]) {
|
||||
if ([message.name isEqualToString:kJSOpenSharePage]) {
|
||||
[self showSharePanel];
|
||||
} else if ([message.name isEqualToString:kJSGetUid]) {
|
||||
NSString *uid = [[AccountInfoStorage instance] getUid];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"uid\",%@)", uid];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetTicket]) {
|
||||
NSString *ticket = [[AccountInfoStorage instance] getTicket];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"ticket\",\"%@\")",ticket];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetDeviceId]) {
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceId\",\"%@\")",[YYUtility deviceUniqueIdentification]];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSGetDeviceInfo]) {
|
||||
NSDictionary *basicParmars = [HttpRequestHelper configBaseParmars:[[NSDictionary alloc] init]];
|
||||
NSString *json = [basicParmars mj_JSONString];
|
||||
NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceInfo\",%@)", json];
|
||||
[self.webview evaluateJavaScript:js completionHandler:^(id _Nullable ohter, NSError * _Nullable error) {
|
||||
NSLog(@"%@", error);
|
||||
}];
|
||||
} else if ([message.name isEqualToString:kJSOpenPurse]) {
|
||||
|
||||
} else if ([message.name isEqualToString:kJSOpenChargePage]) {
|
||||
|
||||
} else if ([message.name isEqualToString:kJSOpenFaceLiveness]) {
|
||||
NSString *verifyToken = message.body;
|
||||
#if TARGET_OS_IPHONE
|
||||
[RPSDK startWithVerifyToken:verifyToken viewController:self.navigationController completion:^(RPResult * _Nonnull auditState) {
|
||||
NSString *jsStrUrl;
|
||||
switch (auditState.state) {
|
||||
case RPStatePass:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 2];
|
||||
break;
|
||||
case RPStateFail:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 1];
|
||||
break;
|
||||
case RPStateNotVerify:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", -1];
|
||||
break;
|
||||
}
|
||||
[self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
}];
|
||||
[RPSDK startWithVerifyToken:verifyToken viewController:self.navigationController completion:^(RPResult * _Nonnull auditState) {
|
||||
NSString *jsStrUrl;
|
||||
switch (auditState.state) {
|
||||
case RPStatePass:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 2];
|
||||
break;
|
||||
case RPStateFail:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 1];
|
||||
break;
|
||||
case RPStateNotVerify:
|
||||
jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", -1];
|
||||
break;
|
||||
}
|
||||
[self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) {
|
||||
NSLog(@"%@",error);
|
||||
}];
|
||||
}];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setUrl:(NSString *)urlString{
|
||||
@@ -177,6 +185,50 @@ NSString * const kJSOpenFaceLiveness = @"openFaceLiveness";
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showSharePanel {
|
||||
XCShareItem *cycle = [[XCShareItem alloc]init];
|
||||
cycle.title = @"朋友圈";
|
||||
cycle.imageName = @"share_wxcircle";
|
||||
cycle.disableImageName = @"share_wxcircle_disable";
|
||||
cycle.disable = NO;
|
||||
cycle.itemTag = XCShareItemTagMoments;
|
||||
|
||||
XCShareItem *wfriend = [[XCShareItem alloc]init];
|
||||
wfriend.title = @"微信好友";
|
||||
wfriend.imageName = @"share_wx";
|
||||
wfriend.disableImageName = @"share_wx_disable";
|
||||
wfriend.disable = NO;
|
||||
wfriend.itemTag = XCShareItemTagWeChat;
|
||||
|
||||
XCShareItem *zone = [[XCShareItem alloc]init];
|
||||
zone.title = @"QQ空间";
|
||||
zone.imageName = @"share_qqzone";
|
||||
zone.disableImageName = @"share_qqzone_disable";
|
||||
zone.disable = NO;
|
||||
zone.itemTag = XCShareItemTagQQZone;
|
||||
|
||||
XCShareItem *qfriend = [[XCShareItem alloc]init];
|
||||
qfriend.title = @"QQ好友";
|
||||
qfriend.imageName = @"share_qq";
|
||||
qfriend.disableImageName = @"share_qq_disable";
|
||||
qfriend.disable = NO;
|
||||
qfriend.itemTag = XCShareItemTagQQ;
|
||||
|
||||
CGFloat margin = 9;
|
||||
CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 111);
|
||||
XCShareView *shareView = [[XCShareView alloc]initWithItemSize:itemSize items:@[cycle,wfriend,zone,qfriend] margin:margin];
|
||||
shareView.delegate = self;
|
||||
[TTPopup popupView:shareView style:TTPopupStyleActionSheet];
|
||||
}
|
||||
|
||||
- (void)shareView:(XCShareView *)shareView didSelected:(XCShareItemTag)itemTag {
|
||||
|
||||
}
|
||||
|
||||
- (void)shareViewDidClickCancle:(XCShareView *)shareView {
|
||||
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
|
||||
if ([keyPath isEqualToString:@"estimatedProgress"]) {
|
||||
self.progressView.progress = self.webview.estimatedProgress;
|
||||
|
Reference in New Issue
Block a user