2017-12-14 7 views
0

私はiOS11.1iOS11コルドバ角度4ラップ:history.replaceState()

がiOS11.1に電話をアップグレードする前に完全に罰金働いていたコルドバで包まれた角度4アプリケーションを持って、私は今、エラーが表示されます
Error: Uncaught (in promise): SecurityError (DOM Exception 18): Blocked attempt to use history.replaceState() to change session history URL from file:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/MyAppName.app/www/index.html to file:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/MyAppName.app/www/. Paths and fragments must match for a sandboxed document. [email protected][native code] [email protected]:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/Real%20Yeti.app/www/

その様子から<base href="./">

を次のように私のベースタグがあり、それは、文字列がURLに比較しないことであると私はサンドボックスエリアの外にアクセスしようとしていると考えて、そしてブロックそれが

しかし、私はベースhrefを指定する必要があります。それ以外の場合、すべてのリンクなどは(アプリケーションフォルダではなく)電話のルートからベースになり、中断します。

誰でもこれを解決する方法を知っていますか?私が正しくのWebKitのソースコード(source for that error)、それはあなたが持っているファイルのURI、で発生を理解していれば

+0

私はiOSについて考えていませんが、Androidではベースタグ<! - Eliseo

答えて

0

私はHashLocationStrategyを使用してこれを解決しました。
これは、エラーを引き起こさない/#/によってURLを読み込みます。私は何が変わった

た:アプリ-routing.module.tsで#

<base href="#"> 

にindex.htmlをセットベースのhrefで

アプリでuseHashオプション

RouterModule.forRoot(routes, { useHash: true }), 

を追加しました.module.tsは、RoutingModuleがインポート配列の最後であることを確認しました

imports: [ 
    ..., 
    AppRoutingModule, 
], 
0

(問題がiOS11.1.1、iOS11.2で存在しています)。私が見つけた唯一の回避策は、ローカルサーバーを使用して、URLを置き換えることができるから実行することです。

関連する問題