당신이 다음에 무엇을해야 :
private static final String SHOW_COLOR_SCRIPT = "var color =
window.getComputedStyle(document.body, null).
getPropertyValue('background-color');Android.showToast(color);";
자바 스크립트 인터페이스를 만들기 자바 스크립트 함수
선언을
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
자바 스크립트 사용 설정 webview 및 se 실행이 방법
private void runScript(String script) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
mWebView.evaluateJavascript(script, null);
} else {
mWebView.loadUrl("javascript:" + script);
}
}
를 사용하여 HTML 본문 배경 색상으로 토스트를 표시 SHOW_COLOR_SCRIPT을 선언하지만, 웹보기 오류를 처리하는 것이 나쁜 결정은 자바 스크립트 인터페이스
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
t. 여기를보십시오 Detecting Webview Error and Show Message
웹 페이지의 내용을 표시하는 웹보기의 스냅 샷을 찍어야합니다. 그러나 이것은 [XY 문제] (https://meta.stackexchange.com/q/66377/364493)처럼 들리며 흰색 화면을 감지하는 대신 서버 응답을 처리해야 할 가능성이 큽니다. – the4kman
Thanks @ the4kman. 하지만 XY 문제는 아니라고 생각합니다. 서버 측에서 안정적인 응답을 보낼 수 있는지 여부를 확인할 수도 있기 때문에 WebView에서 올바르게 렌더링 할 수 있는지 확인할 수는 없습니다. 가장 큰 상황 중 하나는 네트워크가 안정적이지 않았거나 중간자 공격이 일어 났을 가능성이 있다는 것입니다 (특히 중국에서는 ISP가 https가없는 페이지에 일부 광고를 삽입합니다). 그래서 우리는이 화이트 스크린 모니터링 시스템이 필요합니다 ~ –
예, 스냅 샷을 시작하는 것이 좋습니다. 그러나 스냅 샷이 흰색 화면인지 어떻게 알 수 있습니까? –