美文网首页
WKWebview在h5页面中不弹弹框的问题

WKWebview在h5页面中不弹弹框的问题

作者: fly大梦想家 | 来源:发表于2020-06-01 14:01 被阅读0次

    pragma mark - WKWEBVIEWUIDELEGATE

    /**

    • web界面中有弹出警告框时调用
    • @param webView 实现该代理的webview
    • @param message 警告框中的内容
    • @param completionHandler 警告框消失调用
      */
      在wkwebview的代理中添加以下代理方法即可实现
    - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler {
        //    completionHandler();
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert];
        [alertController addAction:([UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            completionHandler();
        }])];
         [[GOVViewControllerManager sharedManager].navigationController.topViewController presentViewController:alertController animated:YES completion:nil];
    }
    
    - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler {
        //    completionHandler(YES);
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert];
        [alertController addAction:([UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
            completionHandler(NO);
        }])];
        [alertController addAction:([UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            completionHandler(YES);
        }])];
        [[GOVViewControllerManager sharedManager].navigationController.topViewController presentViewController:alertController animated:YES completion:nil];
    }
    
    - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * _Nullable))completionHandler{
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:prompt message:@"" preferredStyle:UIAlertControllerStyleAlert];
        [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
            textField.text = defaultText;
        }];
        [alertController addAction:([UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            completionHandler(alertController.textFields[0].text?:@"");
        }])];
        
        [[GOVViewControllerManager sharedManager].navigationController.topViewController presentViewController:alertController animated:YES completion:nil];
    }
    

    相关文章

      网友评论

          本文标题:WKWebview在h5页面中不弹弹框的问题

          本文链接:https://www.haomeiwen.com/subject/lzojzhtx.html