我是Kotlin
的tyro,但我对Android
和Core java
有很好的了解。我通过Kotlin
协助开发Android应用时遇到了一个问题。
当用户点击pdf
文档上的链接时,我想要这样做;该链接应在浏览器上打开(如果浏览器已打开,则链接应在新窗口上打开而不是同一窗口的新标签)。
我已经实现了很多目标,但是如果浏览器已经打开,我还没有找到如何在新窗口中打开链接?
我已经尝试了下面的代码(点击pdf
上的链接然后重定向到下面的函数调用):
fun web_page_open(urls: String) { // for more than one url
val uris = Uri.parse(urls)
val intents = Intent(Intent.ACTION_VIEW, uris)
startActivity(intents)
}
我已经尝试过我最好的水平来解释我的问题并且也搜索了很多(在github
上),但我所有的努力都是静脉。
热烈欢迎任何帮助。
编辑:如果用户已经打开默认浏览器(例如ABZfox),那么考虑一个实例,然后pdf
(或文档)中的链接是单击然后打开 ABZfox 的新窗口,而不是用户之前工作的同一窗口。我确定这个问题现在有道理了!
答案 0 :(得分:8)
你可以尝试这个,可能会有所帮助,打开像
这样的网页浏览器的新标签fun openNewTabWindow(urls: String, context : Context) {
val uris = Uri.parse(urls)
val intents = Intent(Intent.ACTION_VIEW, uris)
val b = Bundle()
b.putBoolean("new_window", true)
intents.putExtras(b)
context.startActivity(intents)
}
答案 1 :(得分:0)
您可以改用chrome自定义标签 要使用它,您需要在gradle中添加以下依赖项
compile 'com.android.support:customtabs:23.1.1'
现在使用下面的代码打开网址
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.enableUrlBarHiding();
builder.setShowTitle(true);
builder.setToolbarColor(Color.TRANSPARENT);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(getActivity(), Uri.parse(url));