6
4

6 に答える 6

2

HTMLコンテンツを制御できないアプリでも同じ問題が発生しているため、javascriptを変更してこれを修正することはできません。

Apple のエンジニアがバグの存在を認識しない限り、バグは修正されません。バグ報告システムでこの問題への参照が見つからなかったので...

早急に修正するために、この問題を bugreport.apple.com で Apple に報告してください。

バグ レポート 20568425 を参照できます: デバイスが回転すると、WKWebView 内の CSS 要素が正しくレイアウトされません

于 2015-04-16T10:24:13.850 に答える
0

これは私にも起こっていました。多くの試行錯誤の後、私の場合は、Web コンテンツに次の JavaScript/jQuery コードを使用して修正できました。

$(window).on('resize', function () {
    setTimeout(function () {
        window.scrollTo(0, 0);
        window.scrollTo(0, 1);
    }, 700);
});

このソリューションに関するいくつかの注意事項:

  • 私が読み込んでいる Web コンテンツは、コンテンツoverflow: autoをスクロールするように設定された固定要素で完全に構成されているため、これはうまくいきます。したがって、ページ全体をスクロールすることはないので、スクロール位置を に自由にリセットでき0, 0ます。ページ全体がスクロールする場合は、スクロール位置に 1 を加算または減算することでこの手法を適応させることができますが、注意してください。ページが機能するには、実際にスクロールする必要があります。たとえば、scrollYページの最大値が 3000 で、3001 に設定しようとしてもうまくいかない場合は、2999 を実行する必要があります。
  • のタイムアウト値は700、目的に対しておそらく過剰です。減らしてみてください。

私は考えられるすべてのことを試しました。確実に機能することがわかった唯一の解決策は、回転イベントの後にスクロールの変更を強制することでした。

これが修正されるのを楽しみにしています!

于 2015-02-27T01:55:55.563 に答える
0

他の人が言ったように、これはバグであるはずです。以下は私の JavaScript の修正です。

//fix IOS WKWebview rotate bug
var viewport_width = $(window).width();
var viewport_height = $(window).height();
setInterval(function(){
    if($(window).width()!=viewport_width || $(window).height()!=viewport_height){
        viewport_width = $(window).width();
        viewport_height = $(window).height();
        window.location = '#wkwrf';
        window.history.back();
    }
}, 200);
于 2015-12-02T06:08:35.403 に答える