Как создать закрепленные ярлыки во флаттере

Я искал все вокруг, но безуспешно. Нет пакета, который может помочь вам создать закрепленные ярлыки. Быстрые ссылки и flutter_shortcuts бесполезны. Они оба поставляются с плохой документацией и без поддержки. Электронная почта, упомянутая там, также недоступна.

По сути, я пишу приложение типа file_manager во Flutter. Я хочу, чтобы пользователь мог создать ярлык для папки или файла наhomescreen. Я достиг этого, используя код Kotlin. Но когда пользователь нажимает на значок, он открываетmainscreenприложения, котороеMainactivityв Котлине.

Я не вижу другого экрана в Котлине.

Упомянутый ниже мой код Kotlin.

      private fun createShortcut(context:Context,folderId:String, folderShortLabel:String, folderLongLabel:String,folderPath:String){
    if (VERSION.SDK_INT>=28){
        val shortcutManager=context.getSystemService(Context.SHORTCUT_SERVICE) as ShortcutManager
        if (shortcutManager.isRequestPinShortcutSupported){
            val pinShortcutInfo = ShortcutInfo.Builder(context,folderId)
                .setShortLabel(folderShortLabel)
                .setLongLabel(folderLongLabel)
                .setIcon(Icon.createWithResource(context,R.drawable.ic_lock_lock))

                .setIntent(Intent(Intent.ACTION_VIEW, null, context, MainActivity::class.java))
                .build()

            val pinShortcallBackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo)
            val successCallBack =PendingIntent.getBroadcast(context,0,pinShortcallBackIntent,0)

            shortcutManager.requestPinShortcut(pinShortcutInfo,successCallBack.intentSender)

        }
    }
}

На самом деле я не уверен, как сказать флаттеру открыть определенный путь в моем приложении при нажатии значка.

1 ответ

Да, наконец-то я нашел решение своей проблемы.

Я использовал пакет receive_intent во флаттере, чтобы получить намерение.

      .setIntent(Intent(Intent.ACTION_VIEW, <usedFolderPath>, context, MainActivity::class.java)).putExtra("FolderName",<folderName>

То же самое было зафиксировано во флаттере в файле main.dart с использованием данных getintialText() перед запуском приложения.

Кроме того, когда приложение загружается в память. Данные из намерения захватываются как поток.

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