iOS一部のユーザだけWKWebViewでエラー( NSErr.code 105 )が発生する – アクセスログは存在するがdidFailProvisionalNavigation

  • このエントリーをはてなブックマークに追加
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
        let nserr = error as NSError

NSLog("didFailProvisionalNavigation :\(nserr.code)")

iOSのアプリでWKWebViewを利用して表示しているページが一部のユーザだけ表示できず、didFailProvisionalNavigation Error 105が発生するので原因調査

自分の環境では発生しないので、一般ユーザから動作ログをレポートしてもらう機能をつけてから、アクセスログと突合させてみると、didFailProvisionalNavigationが発生した場合、アプリに同梱したHTMLを表示させているが、そのHTMLが表示された後、すぐにアクセス失敗したURLのパラメータ欠損みたいなURLに自動的に再度読み込まれる動きをしていることがわかりました。

didFailProvisionalNavigationで発生しているのは105で検索しても情報があまり見つからなかったが、下記のスレッドを発見しました。

https://bugs.chromium.org/p/chromium/issues/detail?id=831381

どうやらペアレントコントロールの影響のようで、Code 105で動きが今回の件と似ています、当初は広告ブロックも疑いましたが、SFSafariViewControllerではなく、wkWebviewなので除外していましたが、ペアレントコントロールはwkWebviewでも動作するようで、多分これです。

試しに再現するユーザー直接連絡してsafariでwkWebviewでエラーとなるページを開いてもらいましたが、アクセスできないとのことでした。

試した限りはコンテンツの内容ではなく、URLのそれっぽい文字列のようでしたので、別のURLを用意してリリースして対応

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。