2013-07-11 13 views
6

私はVane(link)というWebアプリケーションを持っています。それは私の携帯電話(サムスンS3)といくつかのデバイスで正常に動作しますが、一部のデバイスでは、ちょうどjs no cssのHTML部分をロードします..Android WebView:HTMLのみ読み込み、JSまたはCSSは読み込まない(一部のデバイスで)

何らかの理由はありますか?これが私の最初のアプリで、私は、Javaの多くを知らない... 画像:

これは、それがどのように動作するかを(サムスンS3)である

enter image description here

そして、これが、それはいくつかの中でどのように見えるかです他の装置、HTMLのみ(Xtouch電話)

enter image description here

のWebViewコード:

package com.expedyte.vane; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.webkit.GeolocationPermissions; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.webkit.WebStorage; 


public class IWeather extends Activity { 


    public class GeoWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     // When user clicks a hyperlink, load in the existing WebView 
     view.loadUrl(url); 
     return true; 
    } 
} 


public class GeoWebChromeClient extends WebChromeClient { 
    @Override 
    public void onGeolocationPermissionsShowPrompt(String origin, 
      GeolocationPermissions.Callback callback) { 

     callback.invoke(origin, true, false); 
    } 
} 

WebView mWebView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_iweather); 
    WebView mWebView = (WebView) findViewById(R.id.web_engine); 

    mWebView.getSettings().setDomStorageEnabled(true); 
    mWebView.getSettings().setAppCacheEnabled(true);   
    mWebView.getSettings().setDatabaseEnabled(true); 
    String databasePath = this.getApplicationContext().getDir("database",Context.MODE_PRIVATE).getPath(); 
    mWebView.getSettings().setDatabasePath(databasePath); 
    mWebView.setWebViewClient(new GeoWebViewClient()); 
    // Below required for geolocation 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setGeolocationEnabled(true); 
    mWebView.setWebChromeClient(new GeoWebChromeClient() 
    { 
     public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 
       quotaUpdater.updateQuota(5 * 1024 * 1024); 
      } 
     }); 

    mWebView.loadUrl("file:///android_asset/www/weather/index.html"); 
} 
} 

HTMLコード:

<!DOCTYPE html> 
<html> 
<head> 
<link rel="shortcut icon" href="/vane/we.ico" type="image/x-icon" /> 
<link rel="stylesheet" href="swiper.css"> 
<link rel="stylesheet" href="style.css?1"> 
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,600' rel='stylesheet'> 
<script src="jquery.js"></script> 
<script src="plugins.js"></script> 
<script src="script.js"></script> 
<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCaF3Xp-29k7VdixW4PzUU4wmtRAM7T-RA&sensor=false"></script> 
<meta name="viewport" content="initial-scale=1, user-scalable=no"> 
    </head> 
    <body> 
    <div id="loader"><img src="load.png"></div> 


<div id="weather"> 
    <div class="swiper-container swiper-1" id="mainswipe"> 
      <div class="swiper-wrapper"> 
       <div class="swiper-slide ordinary"> 
        <div class="swiper-container swiper-2"> 
         <div class="swiper-wrapper" id="scroller"> 

         </div> 
        </div> 
       </div> 
       <div class="swiper-slide ordinary" id="places_main"> 
        <div class="card"> 
        <input type="text" class="search" id="search" onclick="if(this.value=='Enter a place.'){this.value=''; this.select()} else {this.select()}" value="Enter a place."></input><div class="go" onclick="addPlace()">+</div> 
        <div id="placeholder"> 
         <div class="swiper-container places"> 
          <div class="swiper-wrapper" id="places"> 
          </div> 
         </div> 
        </div> 
        </div> 
       </div> 
      </div> 
     </div></div> 
<div id="rate"> 
     <div id="rate_title">Rate Us</div> 
     <div id="rate_content">Show us how much you love this app by rating us on the app store. Thank you for checking us out.</div> 
     <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=630139527&pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8"><div class="button confirm">Rate Us</div></a> 
     <div class="button remind" onclick="$('#rate').fadeOut()">Remind me later</div> 
     <div class="button never" onclick="never_again()">Never ask me again</div> 
    </div> 
    <div id='alertbox'> 
     <div id='alertheader'>ALERT</div> 
     <div id='alertcontent'> 
       <div></div> 
     </div> 
     <div class='close' onclick='cancelalert()'>Close</div> 
    </div> 
    <div id="info"> 
    <div class="half"> 
     <div id="header"><div id="back" onclick="hide_info()">Back</div>About</div> 
     <div id="video"> 
      <iframe src="http://www.youtube.com/embed/KLbYRPIZ5-4" frameborder="0" allowfullscreen></iframe> 
     </div> 
    </div> 
    <div id="scroller"> 
     <div class="setting"> 
      <div class="label">Unit</div> 
      <div id="unit">C</div><div class="degree">&ordm;</div> 
      <div class="switch" onclick="changeUnit()"><div id="toggle"></div></div> 
     </div> 
    </div> 
    </div> 
    </body> 
    </html> 
+0

関連するすべてのコードを得ましたか。あなたはこれを見ましたか:http://stackoverflow.com/a/16410297/794088? – petey

+0

そう、私はそれを見た..運がない!しかし、アプリは私の携帯電話や私がテストしたいくつかの他のデバイスで正常に動作します。**問題は一部のデバイスでのみ動作しません.. ** –

+0

@AmitJosephもhtmlを追加します。関連する部分は、外部リソースのアドレスを指定する場所となります:css + js –

答えて

-2

いくつかのAndroidのバージョンのファイルプロトコルにおける既知のバグがあります。 URLパラメータでファイルを参照している場合は、HTTP 404(ファイルが見つかりません)が発生し、ファイルはロードされません。

あなたの場合、「style.css?1」は埋め込まれていません。

Overcoming Honeycomb and Ice Cream Sandwich’s Broken WebView URLs

+5

リンクが壊れているようです –

+2

リンクが壊れています。解決策は不完全です。 – Steven

1

あなたediteコード+

super.onStart(); 

WebView webView = (WebView)findViewById(R.id.webView1); 

//enable JavaScript *** 
webView.getSettings().setJavaScriptEnabled(true); 

webView.loadUrl("file:///android_asset/index.html"); 
関連する問題