flutter_siri_suggestions. Flutter plugin for exposure on Siri Suggestions

Note: This plugin only work in iOS.

Getting Started

Add flutter_siri_suggestions as a dependency in your pubspec.yaml file.

Check out the example directory for a sample app.

Usage

Import the library via

import 'package:flutter_siri_suggestions/flutter_siri_suggestions.dart';

Example :


await FlutterSiriSuggestions.instance.buildActivity(
  FlutterSiriActivity(
     "Open App 👨‍💻",
     "mainActivity",
     isEligibleForSearch: true,
     isEligibleForPrediction: true,
     contentDescription: "Did you enjoy that?",
     suggestedInvocationPhrase: "open my app"
  )
);

FlutterSiriSuggestions.instance.configure(
  onLaunch: (Map<String, dynamic> message) async {
      // Awaken from Siri Suggestion
      // message = {title: "Open App 👨‍💻", key: "mainActivity", userInfo: {}}
      // Do what you want :)

      print("called by ${message['key']} suggestion.");

      switch (message["key"]) {
        case "mainActivity":
          __text = "redirect to mainActivity";
          break;
        case "beerActivity":
          __text = "redirect to beerActivity";
          break;
        case "searchActivity":
          __text = "redirect to searchActivity";
          break;
        case "talkActivity":
          __text = "redirect to talkActivity";
          break;
        default:
          __text = "hmmmm...... made a typo";
      }

      setState(() {
        _text = __text;
      });


  }
);

call buildActivity method if you want.

suggestedInvocationPhrase

suggestedInvocationPhrase, only available iOS 12+

enjoy! 💃

 

Use this package as a library

Depend on it

Run this command:

With Flutter:

 $ flutter pub add flutter_siri_suggestions

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):


dependencies:
  flutter_siri_suggestions: ^2.0.0

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:flutter_siri_suggestions/flutter_siri_suggestions.dart';

example/lib/main.dart

import 'package:flutter/material.dart';

import 'package:flutter_siri_suggestions/flutter_siri_suggestions.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _text = 'added mainActivity, beerActivity suggestions 🙋‍♂️';
  @override
  void initState() {
    super.initState();
    initSuggestions();
  }

  void initSuggestions() async {
    FlutterSiriSuggestions.instance.configure(
        onLaunch: (Map<String, dynamic> message) async {
      //Awaken from Siri Suggestion
      ///// TO DO : do something!
      String __text;

      print("called by ${message['key']} suggestion.");

      switch (message["key"]) {
        case "mainActivity":
          __text = "redirect to mainActivity";
          break;
        case "beerActivity":
          __text = "redirect to beerActivity";
          break;
        case "searchActivity":
          __text = "redirect to searchActivity";
          break;
        case "talkActivity":
          __text = "redirect to talkActivity";
          break;
        default:
          __text = "hmmmm...... made a typo";
      }

      setState(() {
        _text = __text;
      });
    });

    await FlutterSiriSuggestions.instance.buildActivity(FlutterSiriActivity(
        "mainActivity Suggestion", "mainActivity",
        isEligibleForSearch: true,
        isEligibleForPrediction: true,
        contentDescription: "Open mainActivity",
        suggestedInvocationPhrase: "open my app"));

    await FlutterSiriSuggestions.instance.buildActivity(FlutterSiriActivity(
      "beerActivity Suggestion",
      "beerActivity",
      isEligibleForSearch: true,
      isEligibleForPrediction: true,
      contentDescription: "Open beerActivity 🍺",
      suggestedInvocationPhrase: "coooooool",
    ));
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Siri Suggestions Sample'),
        ),
        body: Center(
          child: SizedBox(
            height: 200,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceAround,
              children: <Widget>[
                Center(
                  child: Text(_text),
                ),
                Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    TextButton(
                      child: Text("add searchActivity Suggestion"),
                      onPressed: () async {
                        String ret = await FlutterSiriSuggestions.instance
                            .buildActivity(FlutterSiriActivity(
                          "searchActivity Suggestion",
                          "searchActivity",
                          isEligibleForSearch: true,
                          isEligibleForPrediction: true,
                          contentDescription: "Open searchActivity 🧐",
                          suggestedInvocationPhrase: "Search",
                        ));
                        print("$ret suggestion added.");
                      },
                    ),
                    TextButton(
                      child: Text("add talkActivity Suggestion"),
                      onPressed: () async {
                        String ret = await FlutterSiriSuggestions.instance
                            .buildActivity(FlutterSiriActivity(
                          "talkActivity Suggestion",
                          "talkActivity",
                          isEligibleForSearch: true,
                          isEligibleForPrediction: true,
                          contentDescription: "Open talkActivity 💩",
                          suggestedInvocationPhrase: "Talk",
                        ));
                        print("$ret suggestion added.");
                      },
                    )
                  ],
                )
              ],
            ),
          ),
        ),
      ),
    );
  }
}

#fluter  #dart #mobile-apps

Flutter Plugin for Exposure on Siri Suggestions
1.65 GEEK