Как создать закрепленные ярлыки чатов Android в моем приложении Flutter?

Я пишу приложение для чата для своего проекта. Я хочу включить функцию, подобную WhatsApp, где мы можем создавать ярлыки чатов на главном экране, щелкнув Добавить ярлык.

Плагина не было, поэтому я подумал об использовании PlatformChannel и вызове с его помощью собственного кода Kotlin. Но я не знаю, как кодировать родной Android в Kotlin, поэтому я искал такой же код.

Я нашел официальные документы, но их пример не работает сам по себе, поскольку предполагает, что они уже являются ярлыком с идентификатором 'shortcut-id'. Я искал другие места, такие как старые вопросы здесь, YouTube, веб-сайт многих блогов, но ни у одного нет ясное решение или код о том, как создать новый закрепленный ярлык, а некоторые из них либо устарели, либо в java их не решение Kotlin.

Официальный код документации, который не работает сам по себе

      val shortcutManager = getSystemService(ShortcutManager::class.java)

if (shortcutManager!!.isRequestPinShortcutSupported) {
// Assumes there's already a shortcut with the ID "my-shortcut".
// The shortcut must be enabled.
val pinShortcutInfo = ShortcutInfo.Builder(context, "my-shortcut").build()

// Create the PendingIntent object only if your app needs to be notified
// that the user allowed the shortcut to be pinned. Note that, if the
// pinning operation fails, your app isn't notified. We assume here that the
// app has implemented a method called createShortcutResultIntent() that
// returns a broadcast intent.
val pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo)

// Configure the intent so that your app's broadcast receiver gets
// the callback successfully.For details, see PendingIntent.getBroadcast().
val successCallback = PendingIntent.getBroadcast(context, /* request code */ 0,
        pinnedShortcutCallbackIntent, /* flags */ 0)

shortcutManager.requestPinShortcut(pinShortcutInfo,
        successCallback.intentSender)}

Так что будет большим подспорьем, если вы уделите свое драгоценное время и дадите мне способ поработать или место, где я мог бы получить ответ.

2 ответа

Да, вы правы, я тоже исследовал и нашел то же самое. Лучший способ — использовать каналы платформы и вызвать закрепленные ярлыки из их ака, сделать свой собственный плагин. Это хорошая идея, хотя вы можете опубликовать ее в pub dev of flutter.

Вы можете подождать, пока кто-то еще не предложит эту функциональность, или просто использовать какой-то альтернативный способ создания функции, которую вы используете.

Ну можно попробовать этот пакет quick_links

Другие вопросы по тегам