2016-06-14 9 views
0

私は、Visual Studio(taco)用のApache Cordovaツールを使用してクロスプラットフォームアプリケーションを作成しています。アプリケーションはWebサーバーからのHTMLページを表示し、そのページはデバイスにローカルに格納されているJavaScriptを使用しています。それは窓の電話でうまく動作します。しかし、Androidの中で、私は次の例外を取得Cordova with Visual Studio for Android

ローカルリソースをロードするために許可されていないです:ファイル:///ANDROID_ASSET/www/scripts/common.js

は、この作業をするために設定する任意の構成はありますか?

EDIT: @Elvis Xia、コードバアプリケーションでサーバーから次のHTMLページを取得しようとしています。このページでは、いくつかのスクリプトタグのsrcに、FILE:/// ANDROID_ASSET/www/pathを使用してデバイス上のローカルjavascriptファイルを指し示しています。それはアンドロイドで動作していません。 Windowsアプリケーションの場合、私はms-appx-web://com.appname/www/ pathを使用してローカルJavaScriptを参照しています。

  <!DOCTYPE html> 
     <html> 
<head> 
    <title>Test Apps</title> 
    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; media-src *"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <link rel="stylesheet" href="scripts/jquery.mobile-1.4.5.min.css" /> 

     <script type="text/javascript" src="FILE:///ANDROID_ASSET/www/cordova.js"></script> 
     <script type="text/javascript" src="FILE:///ANDROID_ASSET/www/scripts/platformOverrides.js"></script> 
     <script type="text/javascript" src="FILE:///ANDROID_ASSET/www/scripts/common.js"></script> 

     <script type="text/javascript" src="scripts/jquery-2.2.4.js"></script> 
     <script src="scripts/jquery.mobile-1.4.5.min.js"></script> 
     <script type="text/javascript" src="scripts/index.js"></script> 
    </head> 
    <body> 

     <div data-role="page"> 

      <div data-role="header"> 
       <h1>Apps</h1> 
      </div> 
      <!-- /header --> 

      <div data-role="content"> 
       <p> 
        <div> 
         <button id="btnOpt1">Option 1</button> 
        </div> 
        <div> 
         <button id="btnOpt2">Option 2</button> 
        </div> 
        <div> 
         <button id="btnOpt3">Option 3</button> 
        </div> 
       </p> 
      </div> 
      <!-- /content --> 

      <div data-role="footer"> 
       <h4>Page Footer</h4> 
      </div> 
      <!-- /footer --> 
     </div> 
     <!-- /page --> 

    </body> 
</html> 

おかげ

+0

この[質問](http://stackoverflow.com/q/19997146/1825578)を参照してください、それは同じだと思われる –

+0

ありがとうニーチェ..しかし、私はビジュアルを使用してコルドバのアプリを書いているので、 Apache Cordova用のスタジオツール。他の解決策は、WebViewを備えた通常のAndroidアプリ用です。 – Rajan

+0

OK、これをconfig.xmlに入れてみてください。

答えて

0

私は このKitkat kills: Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png(ご提案をありがとうnitishkumar)で提供ソリューションを実装することができましたが、代わりに活動を更新するので、私は「真のonload =」とコルドバのプラグインを作成し、同様のソリューションを実装しました。プロジェクトにプラグインを追加するだけです。うまく動作しているようです。私は何か問題がある場合は投稿します。

0

Androidでfile://プロトコルを使用する代わりに、スクリプトファイルを相対パスとして参照できるようにする必要があります。あなたのHTMLファイルがwwwフォルダにある場合は、次を使用してcommon.jsスクリプトを参照することができます。

<script src="scripts/common.js"></script> 

この同じスクリプトタグは、あなたはコルドバを使用してターゲットとするすべてのプラットフォームで動作します。

+0

あなたの応答をありがとう...しかし、htmlファイルがWebサーバーから来ている場合、相対パスはローカルファイルではなくサーバーの場所を指しています。たとえば、htmlファイルがhttp://webapp.somedomain.com/の場合、srcパスの "scripts/common.js"はhttp://webapp.somedomain.com/scripts/common.jsを指しています。 – Rajan

関連する問題