1

少し奇妙な問題があります...マップにいくつかの統計を表示するために JVectorMap JavaScript をインストールしたサーバー API があります。それは非常に簡単です。次のようにURLをWebビューに設定するだけです:

(WebView 構成)

WebView wv = (WebView)lv_header.findViewById(R.id.result_webview);

WebSettings settings = wv.getSettings();
settings.setBuiltInZoomControls(false);
settings.setUseWideViewPort(true);
settings.setJavaScriptEnabled(true);
settings.setLoadsImagesAutomatically(true);
settings.setDomStorageEnabled(true);
settings.setLoadWithOverviewMode(true); 
wv.setHorizontalScrollBarEnabled(false);

マップを表示するために呼び出す WebView メソッド

private void setWebView(String countryCode) {
wv.loadUrl( MyApplication.API_URL_SERVER_PRODUCTION+"/query/"+getIdFromPos(array_id, posInArray)+"/map/"+countryCode);
}

Android 4.x では > すべて問題ありませんが、4.x ではこのログが表示されます。(そして webView は空白です):

E/Web Console(8411): Uncaught TypeError: Object #<an HTMLDocument> has no method: 'createStyleSheet' at http://www.miwebsite.com/static/js/jvectormap/jquery-jvectormap-1.2.2.min.js:7

メソッド「createStyleSheet」は「jquery-jvectormap-1.2.2.min.js」ファイルにあります...

地図の例 ==>ここをクリック

4

1 に答える 1

0

圧縮されていない jVectorMap では、document.createStyleSheet()182 行目に javascript 関数の呼び出しがあります。

jvm.VMLElement.initializeVML = function () {
        try {
            document.namespaces.rvml || document.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"), jvm.VMLElement.prototype.createElement = function (e) {
                return document.createElement("<rvml:" + e + ' class="rvml">')
            }
        } catch (e) {
            jvm.VMLElement.prototype.createElement = function (e) {
                return document.createElement("<" + e + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')
            }
        }
        document.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"), jvm.VMLElement.VMLInitialized = !0
    }

この関数は jVectorMap 固有ではなく、IE 11 までの IE ブラウザーの JavaScript 実装に固有です。これをサポートしていないブラウザーを使用している可能性があります (Android から IE ユーザー エージェント文字列を送信している可能性があります)。ブラウザ)。

この圧縮されていない jVectorMapを使用して(コピー、貼り付けてファイルに保存し、現在使用している縮小された jVectorMap を置き換えるために使用します)、問題の原因となっている行を確認します。

于 2013-10-01T16:27:11.733 に答える