問題タブ [uiview-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
766 参照

ios - wkwebview ios 10 は、webview の再作成後に localfileurl を含むファイルのロードを停止します

wkwebview と ios 10.3 と swift 3 で奇妙な動作をします。

wkwebview を使用して、ローカルの html ファイル (アプリケーション サポートの下) を表示しています。最初の起動時にはすべてが機能し、ローカル Web サイト (js および css を含む) は正常に機能します。しかし、インターネットからコンテンツの更新をフェッチすると (これには html ディレクトリの削除と新しいファイルの抽出が含まれます)、webview はファイルをロードしません。既存の webview を再利用しようとすると、次のようになります。

または、javascript 呼び出しwindow.location.href='\(self.landingPage)'を使用しても、デバッグ コンソールにかなり奇妙なエラー メッセージが表示されます。

サイズ: (0 0) およびフォーマット: (0) のサーフェスの作成に失敗しました

wkwebview を再初期化しようとすると、次のようになります。

` ...

何も起こらない - 表示されたhtmlの変更なし、エラーなし、フリーズなし - ローカルWebサイトは通常どおり動作する (loadFileURL呼び出しを伴う機能を除く - しかし、このコードはios 9.3で動作し、ios 10で一度動作したと確信している.

wkwebviewの問題とスペースを含むファイルパスを伴うios 10.3ベータのバグについても知っていますが、ドキュメントディレクトリでこれをテストしても同じ結果が得られました。

しかし、しばらくすると、次のログ出力が得られました。

サービス com.apple.WebKit.Networking にシグナルを送信できませんでした: 113: 指定されたサービスが見つかりませんでした

この回答は、Webビューをサブビューとして正しく追加していないことに関連している可能性があることを示していますしかし、ウェブビューをサブビューに追加する際に何か問題があったかどうかはわかりません...

アップデート

ビュー階層をさらにデバッグすると、「wkwebview のあいまいな位置」が判明します。

そして、po [[UIWindow keyWindow] _autolayoutTrace]結果は次のようになります。

しかし今、私はさらに質問があります:

  • この奇妙な WKWebView 動作の原因は「あいまいなレイアウト」でしょうか?
  • もしそうなら、どうすればこのあいまいさを解決できますか?

更新 2:

この回答のおかげで、あいまいなレイアウトを解決でき、ビュー階層デバッガーは満足しています-しかし、残念ながらこれは webview の問題を解決しませんでした-まだ loadFileURL リクエストに応答しません!