1
Android에서 간단한 어린이 안전 브라우저를 만들고 싶습니다.이 API로로드하기 전에 모든 URL을 확인하고 싶습니다. https://www.mywot.com/wiki/API. 하지만 때로 URL을 클릭하면이 링크를로드하는 무한 루프가 시작됩니다. 나는이 같은 shouldOverrideUrlLoading 무시하려고 :보기Android WebView - 클릭 후 무한 루프
private class BrowserWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
loadUrl(url);
return true;
}
}
}
private interface UrlCheckListener {
void urlChecked(boolean isGood);
}
private void loadUrl(String query) {
String safeUrl = UrlCheckerUtils.getSafeUrlFromQuery(query);
checkUrlBeforeLoad(safeUrl, valid -> {
if (isViewAttached()) {
if (valid) {
getView().loadPageByUrl(safeUrl);
} else {
getView().showError();
}
}
});
}
private void checkUrlBeforeLoad(String url, UrlCheckListener listener) {
try {
URI uri = new URI(url);
String domain = uri.getHost() + "/";
wotService.getLinkReputation(domain)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(wotResponse -> listener.urlChecked(wotResponse.isSafe()));
} catch (URISyntaxException e) {
Timber.e(e, "Error while parsing url");
}
}
loadPageByUrl :
@Override
public void loadPageByUrl(String url) {
webView.loadUrl(url);
}
당신이 날이 제발 해결하는 데 도움이 수 있습니까?
에서'loadPageByUrl'를 호출하면'loadPageByUrl'을 호출합니다. – Danh
@ Danh 어떻게 해결할 수 있습니까? – shmakova
Android에 익숙하지 않아 정답을 드릴 수 없습니다. 디버거를 사용하거나 튜토리얼을 찾아보십시오. – Danh