Это мое первое приложение для 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
и как ими управлять по другому?
@Augie, я называю такой URL-адрес для теста localhost: ht tp: // 0.0.0.0:8069/Mobile/checkCode?code_to_check=[ здесь введенный код] Я попытаюсь перехватить то, что вы имеете в виду ... но я новичок в Xcode и приложение ios ... если у вас есть дополнительные предложения, чтобы помочь, я здесь ... Спасибо (добавлены пробелы в URL-адресе для разрыва ссылки)
Никто не может помочь мне управлять этими окнами, чтобы предотвратить закрытие всего ControllerView?
«Хорошо, думаю, проблема связана с окном« Закрыть действия », которое появляется, когда я загружаю файл в <input type = " file "> или когда я нажимаю на ссылку вложения». Но вы не показали ни одного этого кода.
@matt у меня нет этого кода, это все управляется wkwebview ... как я могу управлять этим кодом? Как я могу сказать этой «кнопке закрытия» не закрывать весь контроллер представления, а только окно для загрузки вложения и возврата на веб-страницу?
Это была ошибка библиотек WkWebView. Чтобы избежать этого, просто обновите OSX и XCODE до последних версий, и проблема будет решена.
Не уверен, что это решено для всех ОС iOS, но обязательно для iOS 12 и, возможно, 10
Я действительно не понимаю, из-за чего ваш wkwebview закрывается. Вы загружаете wkwebview с URL-адресом файла, и он запускает загрузку? Возможно, посмотрите на developer.apple.com/documentation/webkit/wknavigationdelegat e, и вы сможете выйти из различных событий навигации, чтобы увидеть, что происходит?