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.
アイデアはありますか?