WkWebView, как управлять событиями и окном, запускаемым файлом типа ввода

Это мое первое приложение для iOS, и я без проблем делаю то же приложение для Android, и теперь я застрял в этой проблеме.

Когда пользователь нажимает «выбрать файл» в веб-просмотре, телефон спрашивает меня, где я хочу выбрать фотографию (или файл), и если я выберу «Закрыть», весь веб-просмотр будет закрыт! Как я могу управлять этими событиями? (на изображении ниже показаны окна, которые вызывают у меня эти проблемы) Та же проблема, если я нажимаю на загруженное вложение, появляется окно, которое показывает мне изображение, и если я долго нажимаю на изображение, появляются некоторые кнопки (копировать, загружать или закрывать) .... если я нажимаю одну из них, WebView закрывается. ..

Кнопка "Назад" отключена, поскольку в этом случае пользователь не может использовать "Назад" и должен следовать рабочему процессу, установленному веб-просмотром.

Я пытаюсь использовать этот код, но все равно закрываю веб-просмотр

import UIKit
import WebKit

class MyWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
    
    //Variable used for take received data from other ViewControllers
    var urlString = String()
    var callerString = String()
    
    // MARK: - Properties
    @IBOutlet weak var myWebView: WKWebView!
    @IBOutlet weak var backButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if callerString == "CodeController"{
            backButton.isEnabled = false
        } else {
            backButton.isEnabled = true
        }
        
        myWebView.navigationDelegate = self
        view.addSubview(myWebView)
        
        // Do any additional setup after loading the view.
        let url = URL(string: urlString)
        myWebView.load(URLRequest(url : url!))
    
    }
    
    @IBAction func backButtonAction(_ sender: Any) {
        if callerString != "CodeController"{
            if myWebView.canGoBack{
                myWebView.goBack()
            }else {
                //Go to Main View
                self.navigationController?.popViewController(animated: true)
                self.performSegue(withIdentifier: "backOnViewControllerSegue", sender: self)
            }
        }
    }

Вот какие images из которых buttons закрывают целиком WebView и как ими управлять по другому?

WkWebView, как управлять событиями и окном, запускаемым файлом типа вводаWkWebView, как управлять событиями и окном, запускаемым файлом типа ввода

Я действительно не понимаю, из-за чего ваш wkwebview закрывается. Вы загружаете wkwebview с URL-адресом файла, и он запускает загрузку? Возможно, посмотрите на developer.apple.com/documentation/webkit/wknavigationdelegat‌ e, и вы сможете выйти из различных событий навигации, чтобы увидеть, что происходит?

Augie 26.09.2018 13:40

@Augie, я называю такой URL-адрес для теста localhost: ht tp: // 0.0.0.0:8069/Mobile/checkCode?code_to_check=[ здесь введенный код] Я попытаюсь перехватить то, что вы имеете в виду ... но я новичок в Xcode и приложение ios ... если у вас есть дополнительные предложения, чтобы помочь, я здесь ... Спасибо (добавлены пробелы в URL-адресе для разрыва ссылки)

Dario 26.09.2018 13:56

Никто не может помочь мне управлять этими окнами, чтобы предотвратить закрытие всего ControllerView?

Dario 03.10.2018 15:15

«Хорошо, думаю, проблема связана с окном« Закрыть действия », которое появляется, когда я загружаю файл в <input type = " file "> или когда я нажимаю на ссылку вложения». Но вы не показали ни одного этого кода.

matt 06.10.2018 21:03

@matt у меня нет этого кода, это все управляется wkwebview ... как я могу управлять этим кодом? Как я могу сказать этой «кнопке закрытия» не закрывать весь контроллер представления, а только окно для загрузки вложения и возврата на веб-страницу?

Dario 07.10.2018 01:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
616
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это была ошибка библиотек WkWebView. Чтобы избежать этого, просто обновите OSX и XCODE до последних версий, и проблема будет решена.

Не уверен, что это решено для всех ОС iOS, но обязательно для iOS 12 и, возможно, 10

Другие вопросы по теме