1. 程式人生 > >iOS WKWebView的javascript alert 不彈的解決方案

iOS WKWebView的javascript alert 不彈的解決方案

- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler{
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert];
    [alertController addAction:([UIAlertAction actionWithTitle:
@"確認" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { completionHandler(); }])]; [self presentViewController:alertController animated:YES completion:nil]; } - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void
(^)(BOOL))completionHandler{ // DLOG(@"msg = %@ frmae = %@",message,frame); UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:([UIAlertAction actionWithTitle:
@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { completionHandler(NO); }])]; [alertController addAction:([UIAlertAction actionWithTitle:@"確認" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { completionHandler(YES); }])]; [self 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:@"完成" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { completionHandler(alertController.textFields[0].text?:@""); }])];

[self presentViewController:alertController animated:YES completion:nil];
}

相關推薦

iOS WKWebView的javascript alert 解決方案

- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void

ios浮層滑動流暢解決方案

viewport -c tle log capable ext cap col 技術分享 前段時間做了一個浮層,但在ios上,浮層滑動不流暢,基本上是隨著手指的移動而移動,經研究加上-webkit-overflow-scrolling: touch即可 eg: <

微信6.7.4 ios12軟鍵盤頂起頁面後隱藏解決方案

bug復現 情況說明: 在2018.11.30號一個明媚的下午,測試跟我反饋說ios出現了bug,懷著一定是你姿勢不對的心裡我自己悄悄的點了一下,我去,居然也出現了,可是昨天還沒有啊,開始排查程式碼,發現沒有任何問題,於是用其他版本的ios和微信測試,發現只有在ios12+,微信6.

PopupWindow出框顯示解決方案

PopupWindow設定好了之後,怎麼都不顯示出來,仔細檢查,需要新增以下程式碼(設定寬度及高度): this.setContentView(view); this.setWidth(LinearLayout.LayoutParams.MATCH_PARENT); th

Spring配置文件裏xsd找到時解決方案

images ... multi col card 源碼 ota match spring配置 今天導入了大神的Dubbo框架,分析下源碼案例發現報錯: 錯誤: Multiple annotations found at this line: - cvc-compl

XAMPP本地服務器打解決方案

解決 cal 技術分享 http 9.png 成功 .com nbsp amp 第一步:先開啟相關服務:如圖 第二步:在瀏覽器上輸入localhost:端口號,(或127.0.0.1:端口號),按回車,就成功登陸本地服務器。 XAMPP本地服務器打不開解決方案

Win10系統下軟件UI顯示完整解決方案

key 解決 window 顯示不完整 行高 解決問題 存在 路徑 解決方案 方法摘錄如下 step1:打開註冊表 WIN+R,或者運行裏面輸入regedit step2:路徑[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

sql執行內部操作期間檢測到一致性解決方案

服務 repair false 重啟 html -- 不一致 備註 操作 解決方法:重啟下SQL服務,把下面腳本運行即可。運行後,壞掉的數據庫可能會丟失。 --mydb 為壞了的數據庫名--mytable 為壞了的據庫表--master 這裏不需要更改 use mydb

android studio 開發中啟動android項目報錯sdk版本一致解決方案

技術分享 發現 依賴 adl 目的 clas studio ima 需要 安卓項目開發中新建項目後再run‘的時候發現報錯com.android.support:appcompat-v7依賴報錯 查看下build.gredle所配置的參數: 打開項目的bui

sqlserver數據庫的服務器 改名字後 數據庫登錄解決方案

數據 sql數據庫 問題 解決方法 sqlserve lec 方案 啟動 sys 計算機名稱修改後,sqlserver原來的windows驗證無法登錄標簽: 數據庫2016-09-26 15:04 1491人閱讀 評論(1) 收藏 舉報分類: DB之路——sqlserver

Mysql grant all privileges on ...生效解決方案

.com nts 本地 all 圖片 info 技術分享 原因 虛擬機 情景:我在mac的終端下用ssh操作虛擬機中的centos,mysql運行在centos中 mysql -u root -p 用root登錄mysql後 使用 grant all privileg

springboot整合activiti報錯[processes/]存在解決方案

except nested key code 解決 nes file exceptio processes springboot整合activiti時,啟動拋異常 nested exception is java.io.FileNotFoundException: clas

寶塔面板 添加網站訪問解決方案

info 面板 dex $1 filename image http php 分享圖片 1.如果是tp5 那麽請你偽靜態一下 代碼如下 location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.ph

IE8中select控制元件中的option顯示解決方案

 select控制元件,若option的內容過長,則IE8中顯示不全,導致其內容無法顯示出來。  目前測試IE9、IE11 select控制元件都沒有問題。 其中select,可以只針對個別的select,只要替換相應的class即可。  解決方案:

PHP的strtotime()函式轉換的時間戳和實際時間一致解決方案

做一個時間區間搜尋的功能時,遇到一個問題,使用strtotime()轉換時間去比較時,發現搜尋不到,前端傳遞的是   但是PHP轉換後時間戳為1540732715,相當於   與實際時間相差8小時,所以搜尋不到的原因就在此。解決問題很簡單。 修改P

NER 中word數量和tag數量一致解決方案以及tf.string_split用法

句子中有中文空格 而tf.string_split(source, delimiter=’ ‘)預設是英文空格 導致NER 中word數量和tag數量不一致。 tf.string_split(source, delimiter=' ') source是一維陣列,用於將一組字串

oracle11g匯出表時會發現少表,空表導解決方案

      一:背景引入        oracle11g用exp命令匯出資料庫表時,有時會發現只匯出了一部分表時而且不會報錯,原因是有空表沒有進行匯出,之前一直沒有找到

VMware Workstation 與 Device/Credential Guard 相容 解決方案

win10專業版官方解決方案 https://kb.vmware.com/s/article/2146361 win10家庭版解決方案 win10家庭版本身是不支援Hyper-V服務的,但是如果是“win10預覽體驗家庭版”,會在“服務”中發現有Hyper-V服務。解決方案:

android全面屏顯示解決方案【更新中...】

一、宣告最大螢幕縱橫比(官方適配方案) Android官方提供了適配方案,即提高App所支援的最大螢幕縱橫比,實現很簡單,在AndroidManifest.xml中可做如下配置: <meta-data android:name="android.max_aspect"

Mysql查詢的資料和顯示的資料時區一致解決方案

前言:在設定mysql時區生效後,查詢的資料顯示的時區是正確的,但是navicat中顯示的資料有差別 一、檢視MySQL當前時區、如果不是北京時間-東八區、要重新設定下或者修改Mysql的配置檔案、新增一條北京時區的配置 show variables like "%time_zone%"; se