Как реализовать жест смахивания для истории WKWebView с помощью loadHTMLString () - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть несколько статических HTML-страниц, я загружаю в WKWebView с помощью метода loadHTMLString(_:baseURL:).Ссылка href внутри локальной HTML-страницы загружает другую локальную HTML-страницу тем же методом.

История навигации между загруженными локальными HTML-страницами должна работать с жестами смахивания (назад и вперед), поэтому я установил: webView.allowsBackForwardNavigationGestures = true

localHTML <-(swipe back/forward)-> localHTML <-(swipe back/forward)-> localHTML

Цель состоит в том, чтобы при использовании load(_:URLRequest) иметь точно такое же оптическое поведение, как при навигации по пролистыванию, что означает предварительный просмотр предстоящего элемента истории (назади переслать элемент).

(У другого пользователя был похожий вопрос, но решение моей проблемы не помогло: iPhone UIWebView loadHtmlString не добавлен в историю )

1 Ответ

0 голосов
/ 30 апреля 2019

WKWebView жесты навигации (пролистывание назад и вперед по истории) прекрасно работает с load(_:URLRequest).Кажется, что нет решения с loadHTMLString()

. Возможное решение проблемы - загрузить локальные HTML-страницы, используя init(fileURLWithPath:) типа URL.

override func viewDidLoad() {
    super.viewDidLoad()

    // WKWebView configuration ...

    webView.allowsBackForwardNavigationGestures = true

    let url = URL(fileURLWithPath: Bundle.main.path(forResource: "page1", ofType: ".html")!)
    let request = URLRequest(url: url)
    webView.load(request)
}

func loadPage2() {
    let url = URL(fileURLWithPath: Bundle.main.path(forResource: "page2", ofType: ".html")!)
    let request = URLRequest(url: url)
    webView.load(request)
}

Послепри загрузке локальных HTML-страниц с помощью fileURLWithPath жесты навигации смахивания работают нормально.

...