我在尝试为小型企业做的基于webview的android客户端中打开内部链接时遇到问题。我需要怎么做才能使应用程序只能打开带有“ https://forums.mywebsite.com”和“ https://mywebsite.com”的链接?
我已经有了使用操作视图打开外部链接的过程,但这仅链接到loadurl()中声明的第一页,并且不链接它们在客户端内,而是将它们视为外部链接。
aWebView.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(21)
public boolean shouldOverrideUrlLoading(WebView aWebView, WebResourceRequest request) {
Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
superWebView.getContext().startActivity(intent);
return true;
}
});
TL; DR:链接期望无效,将不胜感激。
答案 0 :(得分:1)
如docs所述:
返回true会导致当前WebView放弃加载URL,而返回false会导致WebView照常继续加载URL。
您应该在检查URL的方法中具有逻辑,只有当URL与您期望的URL相匹配并开始活动并返回true时,才返回false。
遵循这些原则:
WebView.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(21)
public boolean shouldOverrideUrlLoading(WebView aWebView, WebResourceRequest request) {
if (TextUtils.equals(request.getUrl().toString(), "https://forums.mywebsite.com")
||TextUtils.equals(request.getUrl().toString(), "https://mywebsite.com")) {
return false;
} else {
Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
superWebView.getContext().startActivity(intent);
return true;
}
}
});