2016-09-20 4 views
4

私はAngular 2アプリケーションを作成しましたが、Apache CordovaでAndroidアプリケーションを作成したいと考えています。 Marshmallowエミュレータでアプリケーションをロードすると、アプリケーションは宣言されたリソースをロードしません。ブラウザのプラグインを使用すると、期待どおりに動作します。 Chromeを使用して端末のコンソールを調べると、次のような結果が表示されます。アンドロイド用Apache Cordovaはリソースをロードしません

クロームコンソール出力:

console

私はコルドバ初期サンプルを実行する場合は、ソースに問題がありので、それは同じAndroidのエミュレータで動作します。コードはGithub repositoryで確認できます。アプリケーションはwwwディレクトリにあります。テストのために、androidプラットフォームを追加する必要があります。

$ cordova platform add android 
$ cordova run android 

私はこの問題の答えが見つからないことができます。

  • リソースが正常に見える - ファイルパスの問題を捨てます。
  • ブラウザプラグインが動作します(Chrome) - アプリケーションエラーとセキュリティポリシーを破棄します。
  • コードバのサンプルは、Android廃棄環境のエラーで期待どおりに動作します。

この設定で何が問題になるのですか?

答えて

1

私は根本原因を発見しました。問題は、angular-cliツールを使用すると、タグ<base href="/">が自動的に追加されていることです。 tag documentationによれば、すべてのドキュメントの相対URLを解決するための基礎を提供します。

この場合、ベースタグを削除するか、<base href="/android_asset/www/">のような有効な値に設定して問題を修正します。ルーティング機能を使用していないので(まだ)、私はそれを削除したり、より多くのプラットフォームビルドに適している<base href="."/>のような値を設定したりするのが面倒です。

0

Content-Security-Policyを変更しようとしましたか? config.xmlで 'allow-intent'を変更する方法はありますか? リソースの問題が発生していたときに、これが助けになりました。

+0

コメントありがとう@hgoon。残念ながらそれは役に立たなかった。私のすべてのリソースはローカルにロードされ、[cordova-plugin-whitelist](https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/)のドキュメントに続いて、私は追加してみました: '' – jpuerto

関連する問題