Как добавить кнопку возврата на адаптивный веб-сайт в Swift - PullRequest
0 голосов
/ 02 ноября 2018

Я создал небольшое приложение, используя WKWebView, в быстром, который позволяет пользователю переходить на адаптивный веб-сайт, целевая страница имеет опцию, которая позволяет пользователям перейти на полный веб-сайт компании, как только сайт страница отображается, у меня нет вариантов кнопки «Назад», чтобы вернуться на предыдущую страницу. Как добавить кнопку «Назад» в swift, которую пользователь может выбрать, чтобы вернуть их на исходную страницу адаптивного веб-сайта. Я новичок в этом, и любая помощь будет оценена. Я включаю копию моего кода (ViewController.swift).

       ViewController.swift
       //  wfmApp
       //
       //  Created by Stefan Sanders on 9/13/18.
       //  Copyright © 2018 Stefan Sanders. All rights reserved.
       //

    import UIKit
    import WebKit

    class ViewController: UIViewController {

    @IBOutlet weak var wenView: WKWebView!

    @IBOutlet weak var activityIndicator: UIActivityIndicatorView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let URLString = "https://www.wastefreemail.com/app"
        let request = URLRequest(url:URL(string:URLString)!)
        self.wenView.load(request)

        self.wenView.addObserver(self, forKeyPath: #keyPath(WKWebView.isLoading), options: .new, context: nil)
    }

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if keyPath == "loading" {
            if wenView.isLoading {
                activityIndicator.startAnimating()
                activityIndicator.isHidden = false
            } else {
                activityIndicator.stopAnimating()
            }
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Пожалуйста, проверьте Wkwebview backForwardList, вы получите полный список предметов вперед и назад, из списка вы можете получить backItem, и вы можете проверить, если backitem не равен нулю, это означает, что вы можете вернуться назад и так же, как вы можете получить forwarditem и может также отображать кнопку пересылки. Для получения дополнительной информации см. Эту ссылку список перемотки назад

0 голосов
/ 02 ноября 2018

Этот код возвращает на предыдущую страницу

import UIKit
import WebKit

class ViewController: UIViewController {

    @IBOutlet weak var wenView: WKWebView!

    @IBOutlet weak var activityIndicator: UIActivityIndicatorView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let URLString = "https://www.wastefreemail.com/app"
        let request = URLRequest(url:URL(string:URLString)!)
        self.wenView.load(request)

        self.wenView.addObserver(self, forKeyPath: #keyPath(WKWebView.isLoading), options: .new, context: nil)
    }

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if keyPath == "loading" {
            if wenView.isLoading {
                activityIndicator.startAnimating()
                activityIndicator.isHidden = false
            } else {
                activityIndicator.stopAnimating()
            }
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func goBack(_ sender: Any) {
        wenView.goBack()
    }

}
...