2

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>

何が起こっているのか分かりますか?

前もって感謝し、私の英語で申し訳ありません

4

0 に答える 0