Как создать закрепленные ярлыки чатов 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.
Вы можете подождать, пока кто-то еще не предложит эту функциональность, или просто использовать какой-то альтернативный способ создания функции, которую вы используете.