Android 2.3 以下の WebView で Web ページが表示されない (空白のページ) 理由をテストするためのプロジェクトを作成しました。ロードする必要がある URL は次のとおりです: https://www.geotrackline.com/android/middleware/TabletGeoFrame.php?user_id=503&method=load
これにより、地図を表示する Web が返されます。ポイントは、アプリケーションが Android 3.0 (GalaxyTab でテスト済み) およびそれ以降 (Galaxy Nexus でテスト済み) で問題なく動作することです。
これはJavaでの私のコードです:
WebViewTestActivity.java:
WebView wb;
private static String MAP_URL = "https://www.geotrackline.com/android/middleware/TabletGeoFrame.php?user_id=503&method=load";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wb = (WebView)findViewById(R.id.webView);
WebSettings settings = wb.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setGeolocationEnabled(true);
wb.loadUrl(MAP_URL);
wb.setWebChromeClient(new WebChromeClient(){
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.e("onConsoleMessage", cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId());
return true;
}
});
コンソール メッセージは次のように表示されます。
06-07 11:15:36.480: E/onConsoleMessage(21930): Uncaught SyntaxError: Unexpected token for -- From line 573 of https://www.geotrackline.com/android/middleware/js/GeoTracking.js
06-07 11:15:36.500: E/onConsoleMessage(21930): Uncaught ReferenceError: GeoTracking is not defined -- From line 15 of https://www.geotrackline.com/android/middleware/TabletGeoFrame.php?user_id=503&method=load
06-07 11:15:36.530: E/onConsoleMessage(21930): Uncaught TypeError: Cannot call method 'sendAJAX' of undefined -- From line 27 of https://www.geotrackline.com/android/middleware/TabletGeoFrame.php?user_id=503&method=load
これは、Android 2.3 以下の URL から取得した応答です。
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> :: geotracking :: </title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script language="javascript1.5" src="js/GeoTracking.js" ></script>
<script>
var user_id = '503';
var postn_id = "1323014511956";
var method="load";
var func="";
var map = new GeoTracking("content","","","");
</script>
<style>
body { margin:0; padding:0; }
</style>
</head>
<body onLoad='map.sendAJAX (method, user_id);'>
<div id="content" style="width:100%; height:100%"></div>
</body>
</html>
何が起こっているのか分かりますか?
前もって感謝し、私の英語で申し訳ありません