首页 > 解决方案 > 在外部浏览器中打开多个链接

问题描述

我有一个网址列表。我需要在外部浏览器中一次打开它们,每个链接的页面都会生成一个新选项卡。例如,如果列表有指向 google.com 和 yahoo.com 的链接,它们都应该在浏览器中各自单独的选项卡中打开。

在外部浏览器中打开单个链接非常简单——创建一个 ACTION_VIEW 意图,设置 url 并调用 startActivity。但是如何使用多个 url 来做到这一点?执行多个 startActivity 调用将不起作用。有任何想法吗?

感谢您的时间!

标签: androidkotlinandroid-intent

解决方案


我的回答是基于一些研究,所以我不确定确切的代码,但我会在这里提出一种方法

首先,您可以在布局文件中分别使用视图类型Fragment或视图类型,并根据您的用例,获取. 我们会将您的 url 列表传递给包含 Webview 的活动ActivityWebViewWebView

说,我们这样做

val arrayList = getIntent().getArrayListExtra("urls")
val webView = findViewById<WebView>(R.id.myWebview)

现在我们可以收听滚动变化WebView并等待用户到达WebView页面末尾,如下面的链接所示

如何检查 WebView 的滚动端

然后当到达滚动结束时,我们可以从数组中加载下一个 url

webView.setOnScrollChangeListener((view, i, i1, i2, i3) -> {
            int r1 = webView.computeVerticalScrollRange();
            int r2 = webView.computeVerticalScrollExtent();
            if (i1 == (r1 - r2)) {
                webView.loadUrl(arrayList.get(1) // Or Whatever your next 
                index is
             // Maybe maintain a global variable for which url is currently 
            loaded
            } 
        });

为了让用户体验更好,您可以考虑WebViewClient为您设置一个WebView并覆盖onProgressChanged以向用户显示进度,以防万一他不感到迷失


推荐阅读