2012-02-02 3 views
1

나는 Help이라는 액티비티를 포함하는 Android 앱이 있습니다. WebView를 사용하여 HTML 형식으로 도움말 콘텐츠를 표시합니다. Thie 활동은 두 가지 방법으로 호출 할 수 있습니다. 하나는 URL을 전달하거나 직접 텍스트 콘텐츠를 전달하는 것입니다. 필자가 전달한 유일한 URL은 "file : ///android_asset/help/index.html"(APK의 내 자산에 포함 된 HTML 페이지)입니다.Android 4.0 WebView.loadURL oddity

URL을 전달하면 Android 2.2를 실행하는 HTC Desire에서 정상적으로 작동합니다. Android 3.0을 실행하는 에뮬레이터에서도 작동하는 것으로 보입니다. 그러나 안드로이드 4.0과 에뮬레이터에서 그것을 시도 할 때 빈 페이지를 표시하는 대신 웹 브라우저를 시작하려고 시도하는 것 같습니다; 이 질문을 닫으면 도움말 활동으로 돌아와 빈 페이지가 나타납니다.

직접 텍스트 콘텐츠를 전달하면 시도한 모든 버전에서 정상적으로 작동합니다. WebView 설명서에 따르면 "활동이 인터넷에 액세스하고 WebView에서 웹 페이지를로드하려면 Android 매니페스트 파일에 인터넷 권한을 추가해야합니다."하지만 인터넷에 액세스 할 필요가 없습니다. 내 앱 내부 도움말 페이지를 표시하기 만하면됩니다. 그리고 이것은 4.0 이전의 안드로이드 버전에서 작동했습니다.

Android 4의 버그입니까? 아니면 내가 오해 한 것일까 요? 어떤 도움을 주셔서 감사합니다.

+0

당신이 인터넷 권한이 때 작동하는 경우에 당신이 시도 했습니까? – Ilkka

+0

인터넷 권한없이 앱을 이미 게시 했으므로 추가하지 않으려합니다. 앱에 자유롭게 권한을 추가하는 것을 피하는 것이 좋습니다. 안타깝게도 모든 것을 "맹목적으로"클릭하지 않고 Android 사용자에게 앱이 필요로하는 권한에 대해 의심스럽게 가르치고 싶습니다. –

+0

물론, 나는 그것이 효과를 냈는지 아닌지에 관심이있었습니다. – Ilkka

답변

1

지난 주 HTC Sensation에서 2.3.4에서 4.0으로 업데이트되었습니다. 내가 작성한 두 개의 앱에는 로컬 HTML- 연락처 사이트가 있습니다. 2.3에서 제대로 실행되었으므로 "웹 페이지를 사용할 수 없음"사이트가 생깁니다.

댓글이있는이 사이트에 다른 게시물이 있습니다. "Google 엔지니어와의 토론을 통해 파일 : // 스키마가 안전하지 않다는 결정을 한 것 같습니다."

는 여기를 참조하십시오 : Android 4.0.1 breaks WebView HTML 5 local storage?

+1

해결 방법은 전체 HTML을 문자열에 넣고 모든 HTML 인용 부호를 이스케이프해야하지만 작동합니다. XML 파일의 형식이 잘못되어 문자열을 string.xml에 넣는 데 시간을 낭비하지 마십시오. – ChristianVK

+0

나는 이것을보고있는 유일한 사람이 아니라는 것을 확인해 주셔서 감사합니다. 그것은 버그가 아니라 기능입니다. :) –

+0

최악의 기능은 아마 사람들이 apk에 패키지 된 html 앱 대신 기본 안드로이드 앱을 작성하도록 장려하기위한 것입니다. 고맙게도 windows 8이 곧 나올 것입니다 o_o – fabspro