Как сделать веб-просмотр с предварительным просмотром на странице приложения? - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу показать предварительный просмотр веб-контента в моем приложении.Когда пользователь нажимает на предварительный просмотр веб-страницы, он должен перейти на веб-сайт.

Ниже моего кода

MainViewController.swift

import UIKit
import SDWebImage
import WebKit


class MainViewController: UIViewController, WebServiceDelegate, UITableViewDelegate, UITableViewDataSource, WKUIDelegate {

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var indicator: UIActivityIndicatorView!

var tests: [Test] = []

let defaults = UserDefaults.standard
var webService = WebService()
var webView : WKWebView!
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))

override func loadView() {
    let webConfig = WKWebViewConfiguration()
    webView = WKWebView(frame: .zero, configuration: webConfig)
    webView.uiDelegate = self
    view = webView
}

override func viewDidLoad() {


    super.viewDidLoad()

    let myURL = URL(string: "https://www.google.com/")
    let myReq = URLRequest(url: myURL!)
    webView.load(myReq)

    label.center = tableView.center
    label.textAlignment = .center
    label.text = ""

    tableView.isHidden = true
    indicator.isHidden = true
    indicator.center = view.center

    webService.delegate = self
    tableView.dataSource = self
    tableView.delegate = self
}

override func viewWillAppear(_ animated: Bool) {
    HHTabBarView.shared.isHidden = false
    navigationController?.navigationBar.isHidden = true

Где я могу использовать контентпредварительный просмотр?

    if (defaults.object(forKey: "AccessToken") == nil) {
        if let destinationView = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "IntroViewController") as? IntroViewController {
            if let navigator = self.navigationController {
                navigator.pushViewController(destinationView, animated: false)
            }
        }
    } else {
        startLoading(withView: view, withIndicator: indicator)
        webService.getTests()

У меня есть параметры бэкэнда, такие как

webService.getWebContents(withWebImage: "webImage", withWebTitle:   "webTitle", withWebDescription: "webDescription", withWebCreater: "webCreater", withWebPubDate: "webPubdate")

    }
}

Я хочу создать веб-представление, которое будет отображаться с предварительным просмотром в моих

ячейках табличных представлений MainViewController.

func configureCell(for cell: UITableViewCell, with item: Test) {
    let testImage = cell.viewWithTag(1001) as! UIImageView

    testImage.sd_setImage(with: URL(string: item.image), completed: nil)
    testImage.layer.borderWidth = 0
    testImage.layer.borderColor = UIColor.black.cgColor

}

func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return CGFloat(Utility.scaledHeight(320))
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tests.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "projectCell", for: indexPath)
    cell.selectionStyle = .none
    let item = tests[indexPath.row]
    configureCell(for: cell, with: item)
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if let destinationView = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "TestDetailViewController") as? TestDetailViewController {
        if let navigator = self.navigationController {
            navigator.pushViewController(destinationView, animated: true)
            destinationView.testId = tests[indexPath.row].id
        }
    }
}

}

1 Ответ

0 голосов
/ 26 декабря 2018

У меня был вид навигации в верхней части веб-вида.Отменили эту маленькую точку зрения.Добавлен обычный элемент UIButton со стрелкой назад.navigationController?.popToRootViewController(animated:true)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...