2017-11-28 25 views
1

マイURLUIWebViewとWKWebViewでUrlの読み込みが中断されます。 iOSの11のみ

私の調査結果

  • 上のURLは、すべてのSafariや他のブラウザでは完璧に動作します。 (iOSの11のモバイルサファリを含む)

  • URLはiOSの11

  • 以外のすべてのiOSバージョンで動作私はのUIWebViewとWKWebViewの両方にURLを開こうとしましたが、同じ問題が両方で発生します。 URLが完了するとURLが停止し、 は何も起こりません。ここで

は、私はあなたの助けに感謝し、私がこれまで試したどの

import UIKit 
import WebKit 

class ViewController: UIViewController, WKNavigationDelegate { 

    // Objects 
    var webView: WKWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     setupWebView() 
     loadUrl() 
    } 

    func setupWebView() { 

     let prefs = WKPreferences() 
     prefs.javaScriptEnabled = true 
     let config = WKWebViewConfiguration() 
     config.preferences = prefs 

     webView = WKWebView(frame: view.frame, configuration: config) 
     webView.navigationDelegate = self 
     view.addSubview(webView) 
    } 

    func loadUrl() { 

     webView.navigationDelegate = self 
     let url = URL(string: "https://app.educationgalaxy.com/games/ipadgame.html?retries=3&name=blastoff&rocket=3&level=2&score=0&gameTimer=150")! 
     var request = URLRequest(url: url) 
     request.cachePolicy = .reloadRevalidatingCacheData 
     webView.load(request) 
    } 

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 
     print(webView.url!) 

    } 

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { 

     print(webView.url!) 
    } 

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { 

     print("error - \(error)") 
    } 

} 

です。

+0

iOS 11から、非メインスレッドで実行されたUIの事柄(たとえあなたがUIApplicationにアクセスしたとしても)が動作しても機能しません。以下は私が得たエラーです。 "CoreAnimation:[EAGLContext renderbufferStorage:fromDrawable:]は、暗黙のトランザクションで非メインスレッドから呼び出されました!これは明示的なCATransactionまたは[CATransaction flush]の呼び出しがないと安全ではないことに注意してください。 – jpulikkottil

+0

コメントありがとうございます。ご覧のとおり、メインスレッドからURLをロードしようとしています。私が試みたのは、アプリケーションを作成し、viewDidLoadでWKwbviewを作成し、URLのロードを要求するようなものです。 URLの読み込みが開始されますが、読み込み途中で停止します。これはiOS 11でのみ発生し、他のすべてのバージョンは完全にURLをロードします。 –

答えて

0

私はあなたのコードを分析し、必要な画像を確認する必要があります。私は画像urlのリンクがうまく動作しているコードを使用しています。

import UIKit 
import WebKit 

class ViewController: UIViewController ,WKNavigationDelegate { 


    var webView: WKWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     setupWebView() 
     loadUrl() 
    } 

    func setupWebView() { 

     let prefs = WKPreferences() 
     prefs.javaScriptEnabled = true 
     let config = WKWebViewConfiguration() 
     config.preferences = prefs 

     webView = WKWebView(frame: view.frame, configuration: config) 
     webView.navigationDelegate = self 
     view.addSubview(webView) 
    } 

    func loadUrl() { 

     webView.navigationDelegate = self 
     // let url = URL(string: "https://app.educationgalaxy.com/games/ipadgame.html?retries=3&name=blastoff&rocket=3&level=2&score=0&gameTimer=150")! 

     let url = URL(string: "https://upload.wikimedia.org/wikipedia/commons/2/2d/Snake_River_%285mb%29.jpg")! 


     var request = URLRequest(url: url) 
     request.cachePolicy = .reloadRevalidatingCacheData 
     webView.load(request) 
    } 

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 
     print(webView.url!) 

    } 

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { 

     print(webView.url!) 
    } 

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { 

     print("error - \(error)") 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+0

ありがとうございます。私は理解していない、あなたは私の場合に何をしなければならないか説明してください。 –

+0

問題はすべてのURLで発生するわけではありません。私の特定のURLはwebviewで動作していません。 –

+0

まず、Webビュー(ハードコード)にログインしてセッションを維持し、成功したら同じURLを呼び出す必要があります。 –

0

WkWebviewが最近導入され、UIWebViewは正式に廃止されました。 ここにAppleフォーラムに掲載された同じ問題に関するリンクがあります。また、Appleのスタッフが現在クラッシュを把握しています。 enter link description here

https://forums.developer.apple.com/thread/90411 また、プロジェクトでWKWebView.frameworkを追加しよう。 およびトランスポートセキュリティ。 この情報がお役に立てば幸いです。

+0

ありがとうございます。あなたが言ったように、他の人々がWebKit関連の問題を報告しているのを見ることができます。私たちの場合、URLがロードされており、進行状況を追跡できます。残念ながら、ロードが完了する前に停止しています(クラッシュはありません)。 webkit.frameworkを追加しましたが、まだ変更はありません。私たちのURLはHTTPSなので、私はすべてのWebアクセスを許可しましたが、問題は依然として存在していますが、ATSはこれに対して何の役割も持っていません。 –

関連する問題