gpt4 book ai didi

java - 如何让我的应用程序获取在 WebView 中单击的链接的 URL,对其执行操作,然后加载它?

转载 作者:行者123 更新时间:2023-11-30 04:56:04 25 4
gpt4 key购买 nike

作为序言,我要说我绝对是 Android 中任何代码的菜鸟(我基本上是在 Stack Overflow 上通过你们这些很棒的家伙和女孩学习如何做所有事情 :))。我正在制作一个完全只是 WebView 组件的应用程序,我希望它检测何时单击该 WebView 页面中的链接,获取该链接的 url,然后如果原始链接有,则将用户重定向到另一个链接其中的某个字符串。最后,需要使用原始链接或重定向链接重新加载 WebView。

这是我认为发生错误的应用程序 Java 端的代码:

public class Grades extends AppCompatActivity {

private WebView webview;
String ShowOrHideWebViewInitialUse = "show";
private ProgressBar spinner;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grades);

webview =(WebView)findViewById(R.id.webView);
spinner = (ProgressBar)findViewById(R.id.progressBar1);
webview.setWebViewClient(new CustomWebViewClient());

webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
webview.loadUrl("myurl.com");
}
// This allows for a splash screen
// (and hide elements once the page loads)
private class CustomWebViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView webview, String url, Bitmap favicon) {
// only make it invisible the FIRST time the app is run
if (ShowOrHideWebViewInitialUse.equals("show")) {
webview.setVisibility(webview.INVISIBLE);
}
}

@Override
public void onPageFinished(WebView view, String url) {

spinner.setVisibility(View.GONE);
ShowOrHideWebViewInitialUse = "hide";
view.setVisibility(webview.VISIBLE);
super.onPageFinished(view, url);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("/courses/")) {
url = url + "/grades"
WebView.loadUrl(url);
return false;
} else {
WebView.loadUrl(url)
}

}
}
}

我做了一些故障排除并添加了代码,使应用程序在最后一个@override 的 logcat 中显示 url。那里的问题是 WebView 没有加载页面,相反,它的 logcat 中只有一个无限循环,它打印 WebView 的 current 页面的 url,而不是 的 url em>链接。所以对我来说,我的问题似乎是双重的,我不知道该怎么做。

有关信息:中间两个 @overrides 仅用于在应用程序启动时加载主页时显示微调器。在最后一个@override 之前,一切似乎都运行良好。

最佳答案

尝试将返回语句添加到覆盖函数的末尾,并由于 url 更改而更改返回值。

关于java - 如何让我的应用程序获取在 WebView 中单击的链接的 URL,对其执行操作,然后加载它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com