Как изменить код iOS WKWebView Swift, чтобы сделать то же самое в macOS? - PullRequest
0 голосов
/ 16 января 2020

Вот то, что у меня есть на данный момент: iOS.

Это простое тестовое испытание для загрузки WebView для загрузки на iOS. Это не должно быть помещено в AppStore или что-то подобное - поэтому, пожалуйста, не предлагайте помощь, связывая меня со статьями на stackoverflow о том, «как Apple не допустит этого». Я просто хочу запустить это приложение локально.

Я начал с этого, потому что не смог понять, как получить аналогичную вещь в macOS.

Код, который у меня сейчас есть, следующее - в основном вставлено и изменено из нескольких iOS руководств по WKWebView Swift.

ViewController.swift

import UIKit
import WebKit

let webView = WKWebView()

class ViewController: UIViewController {

    override func loadView() {
        self.view = webView

        if let url = URL(string: "https://daringfireball.net") {
            let request = URLRequest(url: url)
            webView.load(request)
        }

    }

  override func viewDidLoad()
    {
        super.viewDidLoad()

        let request = URLRequest(url: URL(string: "https://daringfireball.net")!)

        webView.load(request)
    }


}

Теперь вот мой вопрос: как мне изменить это так, чтобы это работать на macOS Catalina, так что я могу сохранить это как .app и запустить его. Снова, не пытаясь получить это AppStore - только для локального использования.

Я полагаю, что у macOS нет "UIKit". Кроме того, избыточно ли иметь два места в коде, где указан один и тот же URL, должен ли быть только один переопределение?

1 Ответ

1 голос
/ 16 января 2020

Вы почти у цели:)

Вот код, который нужно добавить в проект macOS, чтобы он загрузил веб-страницу

import Cocoa
import WebKit

class ViewController: NSViewController {

    let webView = WKWebView()

    override func loadView() {
        view = webView
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        let request = URLRequest(url: URL(string: "https://daringfireball.net")!)
        webView.load(request)
    }
}

Вы абсолютно правы, что macOS не имейте UIKit, вместо этого вы используете Cocoa, как вы можете видеть здесь.

Я позволил себе удалить один из ваших фрагментов кода "загрузить веб-страницу", когда вы задаете себе вопрос. Теперь мы просто загружаем его в viewDidLoad.

Если вы создаете новый проект MacOS в XCode и вставляете вышеупомянутое, а затем запускаете ваш проект ..... ничего не происходит: (

Это потому что нам нужно сделать одну заключительную вещь.

Итак, go к обзору вашего проекта и выберите панель «Подписание и возможности».

Необходимо проверить «Исходящие соединения (клиент)». "в изолированной программной среде приложения, как показано здесь

capabilities

Надеюсь, вы увидите, что ваша веб-страница уже загружена.

Надеюсь, это поможет.

...