Проверьте, какой URL-адрес открыт в пользовательских вкладках Chrome.

Есть ли какая-либо функция в пользовательских вкладках Chrome, аналогичная onPageStarted из Webview. В onNavigation.. пакет всегда равен нулю


person mishigun    schedule 02.02.2016    source источник


Ответы (2)


По дизайну это невозможно с пользовательскими вкладками Chrome. Вы можете сказать, что пользователь совершил переход, но вы не можете сказать, куда он отправился. См.: http://developer.android.com/reference/android/support/customtabs/CustomTabsCallback.html, чтобы узнать, что возможно.

person ade    schedule 07.02.2016

Вы можете увидеть, какой URL-адрес в настоящее время открыт в пользовательских вкладках Chrome, если вы можете заставить пользователя активировать PendingIntent, нажав кнопку действия на панели инструментов или пункт меню.

В вашем фрагменте/активности создайте вложенный класс 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())
        }
    }
}

Добавьте приемник в файл манифеста:

<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.

person Joe Muller    schedule 05.06.2020
comment
Возможно ли это без клика? - person Sumit Shukla; 01.12.2020