2013-10-01 2 views
1

약간 이상한 문제가 있습니다 ... JVectorMap javascript를 설치 한 서버 API를 사용하여지도에 통계를 표시합니다. 나는 안드로이드 4.x의에지도WebView 콘솔에 android <4.0 |의 오류가 표시됩니다. (JVectorMap)

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

에게 보여주기 위해 전화

(웹보기 구성)

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); 

웹보기 방법 : 내가 그냥 같은 웹보기에 URL을 설정해야합니다 매우 간단합니다 >는 ok를 보여줄 것입니다. 그러나 4.x에서는이 로그를 가지고 있습니다; (그리고 웹보기가 비어) :

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"파일의 ...

지도의 예 ==> 182 자바 스크립트 함수 한계선에 document.createStyleSheet() 호출있다 jVectorMap 압축에서 Click Here

답변

0

: 함수가 특정되지 jVectorMap

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 
    } 

은 토륨에 고유 IE 브라우저에서 Internet Explorer 11까지의 자바 스크립트 구현. 지원하지 않는 브라우저를 사용하고있을 가능성이 있습니다 (Android 브라우저에서 IE 사용자 에이전트 문자열을 보내는 것일 수도 있음).

this uncompressed jVectorMap (복사하여 붙여 넣기를 파일에 붙여넣고 현재 사용중인 축소 된 jVectorMap을 바꾸기 위해 사용) 및 문제의 원인이되는 행을 확인하십시오.

+0

도움을 주셔서 감사합니다! 나에게이 문제를주는 줄은 ==> if (! jvm.WorldMap.maps [this.params.map])가 새로운 오류 ("로드되지 않은지도 사용 시도 : + this.params")를 던지는 524입니다. 지도); 안드로이드 4.0에서이 문제의 원인은 무엇입니까? – Jason

+0

나는 그것이 안드로이드 또는 jvectormap과 관련이 없다고 생각하지 않습니다. 올바른지도에 연결하지 않았을 가능성이 큽니다. jquery-jvectormap-us-aea-en.js에는 'us_aea_en'또는 jquery-jvectormap-fr-merc-en.js 맵에 'fr_merc_en'이 있어야합니다. – itmitica

+0

은 android 4.0> 및 iOS에서 작동합니다. 하지만 android <4.0은 android (예 : Firefox)가 기본값이 아닌 브라우저로 이동하는 경우에만 작동합니다. – Jason