WkWebview мигает белым, когда жест возвращается/впередIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 WkWebview мигает белым, когда жест возвращается/вперед

Сообщение Anonymous »

Я создаю приложение для iOS с помощью WkWebview, Vue.js.
Тема веб-сайта всегда темная, поэтому каждый цвет фона темный #181818.
При движении назад/вперед на экране отображается предварительный просмотр предыдущей/следующей страницы, верно?
Иногда ничего не отображается. (Думаю, это связано с кешем или SPA)
Не имеет значения. Наконец-то страница загружается хорошо.
Но в WkWebview фон мигает белым при переходе вперед/назад.
Скриншот веб-просмотра
Я так и думал Цвет тела html — белый, но он тоже был #181818.
скриншот Safari
В Safari отображается #181818< /code> ну...
Как это исправить?
ViewController.swift:
import UIKit
import WebKit

func hexStringToUIColor (hex:String) -> UIColor {
var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()

if (cString.hasPrefix("#")) {
cString.remove(at: cString.startIndex)
}

if ((cString.count) != 6) {
return UIColor.gray
}

var rgbValue:UInt64 = 0
Scanner(string: cString).scanHexInt64(&rgbValue)

return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}

class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler {

@IBOutlet weak var containerView: UIView!
var webView: WKWebView!

var baseURL = "http://example.com"

override func loadView() {
super.loadView()

containerView.backgroundColor = hexStringToUIColor(hex: "#121212")
containerView.isOpaque = false

let contentController = WKUserContentController()
let config = WKWebViewConfiguration()

config.userContentController = contentController
config.preferences.javaScriptCanOpenWindowsAutomatically = true

webView = WKWebView(frame: self.containerView.frame, configuration: config)
webView.uiDelegate = self
webView.navigationDelegate = self
webView.isOpaque = false
webView.isHidden = false
webView.allowsBackForwardNavigationGestures = true
webView.scrollView.contentInsetAdjustmentBehavior = .never
webView.backgroundColor = UIColor.clear
webView.scrollView.backgroundColor = hexStringToUIColor(hex: "#121212")
webView.allowsBackForwardNavigationGestures = true

self.view.addSubview(webView)
}

override func viewDidLoad() {
super.viewDidLoad()

self.view.isOpaque = false
self.containerView.isOpaque = false
webView.isOpaque = false

let backgroundColor = hexStringToUIColor(hex: "#121212")
webView.backgroundColor = backgroundColor
super.viewDidLoad()

let url = URL(string:baseURL)
openApp(url: url!)
// webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil)
}

func openApp(url: URL){
let request = URLRequest(url: url, cachePolicy: URLRequest.CachePolicy.useProtocolCachePolicy)
webView.evaluateJavaScript("navigator.userAgent") { [weak webView] (result, error) in
if let webView = webView, let userAgent = result as? String {
let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String

webView.customUserAgent = userAgent + "ios/" + currentVersion!
}
}

webView.load(request)
}
}


Подробнее здесь: https://stackoverflow.com/questions/668 ... ck-forward
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • IOS iPhone 11 мигает черно-белым, а браузер постоянно перезагружается: фоновое утверждение RBS ConnectionTerminationWatc
    Anonymous » » в форуме IOS
    0 Ответы
    97 Просмотры
    Последнее сообщение Anonymous
  • Приложение MAUI мигает белым между сменами страниц в темной теме
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Приложение MAUI мигает белым между сменами страниц в темной теме
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI — жест перетаскивания блокирует жест прокрутки только на iPhone 11
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI — жест перетаскивания блокирует жест прокрутки только на iPhone 11
    Anonymous » » в форуме IOS
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»