2011-03-22 3 views
1

CSS를 포함하여 동적으로 쿼리 된 일부 내용을 표시해야하는 앱을 만들고 있습니다. WebView가 이러한 유형의 작업에 가장 적합한 구현 인 것으로 보입니다.hr 태그의 CSS 수정 기능이있는 Android WebView

나는 그것을 테스트 할 때 오류로 실행 및 CSS 태그 다음 에 아래로 추적 :

시간 {폭 :! 100 % 중요한}

안드로이드 웹보기가 표시 할 수없는 것 같다 이 줄이 포함 된 모든 . 일부 조사 결과에 따르면이 속성의 사용이 권장되지 않는 이유는 (링크 : http://www.w3schools.com/tags/att_hr_width.asp)이지만 모든 브라우저에서 으로 작동합니다.

다음은이 행을 포함하여 일부 html입니다. 어떤 브라우저 에서 제대로 렌더링됩니다. 안드로이드

<html> 
    <head> 
    <style type=\"text/css\"> 
     hr{width:100%!important} 
    </style> 
    </head> 
    <body> 
    Some text 
    </body> 
</html> 

그리고, :

  String exampleCSS = "<html><head><style type=\"text/css\">" + 
          "hr{width:100%!important}" + 
          "</style></head><body>" + 
          "Some text" + 
          "</body></html>"; 
      WebView webView = (WebView) findViewById(R.id.web_html_about); 
      webView.loadData(exampleCSS, "text/html", "utf-8"); 

결과는 "웹 페이지를 사용할 수 없습니다"는 웹보기에서 오류입니다.

지원 중단으로 인해 알려진 문제일까요? WebView의 버그입니까? 이러한 문제에 대해 알려진 해결 방법이 있습니까?

+0

webview가 그렇게 부러져서는 안되지만 CSS를 인라이닝하지 않을 것입니다. 하나의 장소 (또는 몇 군데)에서 모든 CSS를 가져옵니다. – aptwebapps

답변

2

android webview가 data : // 체계를 사용하여 콘텐츠를 전달한 것처럼 보이므로 결과적으로 콘텐츠가 예상대로 작동하도록 urlencode해야합니다. 내 경우 는 CSS/HTML은 나에게 제공, 그래서 주변에 다음과 같은 작업을 사용했다있다 :

((WebView) findViewById(R.id.web_body)).loadDataWithBaseURL(null, content, null, "utf-8", null); 

이 작동하는 것 같다을, 이상이 특정 문제를 전달받을. 답변 해 주신 모든 분들께 감사드립니다. Dale.

2

Hr은 대칭적인 의미가 주어졌지만 감가 상각되지 않습니다. 내용의 변화를 나타냅니다.

문제의 원인을 잘 모르겠지만 서면으로 불필요한만큼 마크 업을 알려줄 수 있습니다. Hr은 블록 레벨 요소이므로 이미 100 % 너비가 있습니다.

+0

이 답변을 주셔서 감사합니다, 크리스. 당신은 맞습니다,하지만 소스 HTML은 제 자신이 아니기 때문에 나는 그것을 통제 할 수 없습니다. –