Не удалось сохранить значение в локальном хранилище браузера Safari с помощью swift - PullRequest
0 голосов
/ 05 сентября 2018

Я использую WebKit для хранения электронной почты в локальном хранилище браузера Safari. Однако я получаю сообщение об ошибке

поток 3: фатальная ошибка: неожиданно обнаружен ноль при развертывании Необязательное значение

Один из способов сохранить значение в localstorage - использовать UserDefaults, но таким образом значение не сохраняется в локальном хранилище safari, поэтому я использовал следующий способ

import SafariServices
import WebKit

class SafariExtensionViewController: SFSafariExtensionViewController {
    @IBOutlet weak var webView: WKWebView!
    static let shared = SafariExtensionViewController()
    override func viewDidLoad() {
        self.preferredContentSize = NSSize(width: 300, height: 250)
        message.stringValue = ""
        emailMessage.stringValue = ""
        passwordMessage.stringValue = ""
    }
    @IBAction func userLogin(_ sender: Any) {
     let providedEmailAddress = email.stringValue
      self.webView.evaluateJavaScript("localStorage.setItem(\"email\", \"value\")") { (result, error) in

         self.webView.reload()                           
     }
    }
}

У меня вопрос, как мне сохранить значение в локальном хранилище браузера Safari из swift, чтобы я мог получить к нему доступ и из javascript.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы не подключили розетку webView (которая помечена как Неявно развернутая опция ) из раскадровки, поэтому вы получили эту ошибку.

Вы можете использовать CoreData , UserDefaults , FileManager , даже простой SQLite для хранения того, что вы хотите.

EDIT:

Расширение приложения Safari может считывать и изменять содержимое вашей веб-страницы. Также он позволяет вам получить доступ к данным в вашем браузере.

Выполните следующие шаги, чтобы сделать расширение Safari App:

  1. Создание расширения приложения Safari
  2. Вставить скрипт в веб-страницу
  3. Передать сообщение между расширением приложения Safari и внедренным сценарием
...