2016-03-31 14 views
3

'u yeniden başlattıktan sonra iki WKWebView s A ve B yükleme yerel file:// s var. Bu görüyorum davranıştır: A yılındaİki WKWebViews yerel depolamayı paylaşır, ancak yalnızca

  • , B yılında localStorage.setItem('test', true)
  • , döner localStorage.setItem('test') okumak set undefined
  • true
döndürür
  • B yılında localStorage.setItem('test') okumak B Yeniden

    Yani öyle görünüyor ki A ve B yerel depolamayı paylaşır, ancak gerçek zamanlı olarak eşitleme yapmaz. Bu benim için çok garip. Neden yerel depolama alanı iki WKWebView s arasında gerçek zamanlı olarak senkronize edilmiyor?

  • +0

    Bir cevap buldunuz mu? – Crashalot

    cevap

    0

    WKWebView'iniz arasında benzersiz bir WKProcessPool paylaşmanız gerekir. WKWebView merkezi ProcessPool bir kopyasını yerine ona bir referans erişim kullanılan sanki bu olmadan

    let uniqueProcessPool = WKProcessPool() 
    
    let configA = WKWebViewConfiguration() 
    configA.processPool = uniqueProcessPool 
    let webViewA = init(frame: CGRect.zero, configuration: configA) 
    
    let configB = WKWebViewConfiguration() 
    configB.processPool = uniqueProcessPool 
    let webViewB = init(frame: CGRect.zero, configuration: configB) 
    

    , bu hissedeceksiniz. Hangi değişiklikleri gerçek zamanlı olarak görmediğinizi açıklar ve görüşünüzü yeniden yüklemeniz gerekir.