2

React / Create React App / Cordova を使用してハイブリッド アプリを作成しています。フローティング カーソルや一般的な標準以下のレンダリングなど、UIWebView に関するいくつかの問題があるため、WKWebView の使用に切り替えました。WKWebView はレンダリングの問題を改善しましたが、History Web API に問題があります。

私のコア ナビゲーション/ルーティングの一部として、以下の行を使用して、現在のページを表す値を履歴 API にプッシュしています。次に、必要に応じて値をポップし、カスタム ルーターに渡します。これは UIWebView を使用すると正常に機能しますが、セキュリティ上の問題により WKWebView では機能しません。

window.history.pushState({pageId: pageId}, null, action.pageId);

プッシュすると、次のエラーが表示されます (注: この投稿では ID を {HASH} に置き換えました):

SecurityError: Blocked attempt to use history.pushState() to change session history URL from file:///Users/name/Library/Developer/CoreSimulator/Devices/{HASH}/data/Containers/Bundle/Application/{HASH}/App.app/www/index.html to file:///Users/name/Library/Developer/CoreSimulator/Devices/{HASH}/data/Containers/Bundle/Application/{HASH}/App.app/www/login. Paths and fragments must match for a sandboxed document.

アイデアはありますか?

4

1 に答える 1

-1

私のプロジェクト

React JS + コルドバ

問題

SecurityError: Blocked attempt to use history.pushState() to change session history URL
Paths and fragments must match for a sandboxed document.

解決

cordova plugin add cordova-plugin-wkwebview-engine
cordova plugin add cordova-plugin-wkwebviewxhrfix

非常に単純な解決策ですが、すべてをまとめるには何日もの調査が必要でした。

プラグイン作成者に感謝します!

于 2020-05-10T16:41:54.597 に答える