检查在自定义的chrome标签页中打开了哪个网址

问题描述 投票:5回答:2

在chrome自定义标签页中有没有类似于Webview的onPageStarted的功能。在onNavigation中......bundle总是空的。

android google-chrome android-webview chrome-custom-tabs
2个回答
3
投票

在设计上,Chrome自定义标签不可能做到这一点。你可以知道用户已经浏览过,但你无法知道他们去了哪里。请看 http:/developer.android.comreferenceandroidsupportcustomtabsCustomTabsCallback.html)。 以了解可能的细节。


0
投票

如果你能让用户通过点击工具栏上的操作按钮或菜单选项来触发PendingIntent,你就可以看到Chrome自定义标签中当前打开的是什么URL。

在你的fragmentactivity中,创建一个嵌套的BroadcastReceiver类,该类将在它的onReceive()方法中处理传入的意图。

class DigBroadcastReceiver() : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        val uri: Uri? = intent.data
        if (uri != null) {
            Log.d("Broadcast URL",uri.toString())
            main.genericToast(uri.toString())
        }
    }
}

将接收器添加到你的manifest文件中。

<receiver
    android:name=".ui.dig.DigTabs$DigBroadcastReceiver"
    android:enabled="true" />

创建PendingIntent并将其添加到CustomTabsIntent.Builder中:

val sendLinkIntent = Intent(main,DigBroadcastReceiver()::class.java)
        sendLinkIntent.putExtra(Intent.EXTRA_SUBJECT,"This is the link you were exploring")
        val pendingIntent = PendingIntent.getBroadcast(main,0,sendLinkIntent,PendingIntent.FLAG_UPDATE_CURRENT)
        // Set the action button
        AppCompatResources.getDrawable(main, R.drawable.close_icon)?.let {
            DrawableCompat.setTint(it, Color.WHITE)
            builder.setActionButton(it.toBitmap(),"Add this link to your dig",pendingIntent,false)
        }
        val customTabsIntent: CustomTabsIntent = builder.build()
        customTabsIntent.launchUrl(main, Uri.parse(url))

请看我的 在Medium上发表文章解释这个问题.

© www.soinside.com 2019 - 2024. All rights reserved.