我在尝试获取内部链接以在基于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:链接期望不起作用,任何帮助将不胜感激。
正如docs解释的那样:
返回true会导致当前WebView中止加载URL,而返回false会导致WebView像往常一样继续加载URL。
您应该在检查URL的方法中使用逻辑,并且仅当url与预期的URL匹配并且启动活动时返回false,否则返回true。
这些方面的东西:
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;
}
}
});