Un plugin Flutter pour utiliser la connexion en temps réel iOS 15.0+ PartagerPlay sur un appel FaceTime 🎥.
🧐 Qu’est-ce que c’est ?
Ce plugin utilise officiel API d’activités de groupe iOS.
partager_jouer peut être utilisé pour communiquer des données sur des appareils dans une application Flutter à l’aide des fonctionnalités iOS SharePlay.
Pourquoi utiliser iOS SharePlay ?
- ⚡️ C’est vite.
- 🍀 Fiable (à l’aide du serveur Apple).
- 💰 C’est « libre” (y compris dans votre abonnement Apple Developer payant).
- 😌 Très facile à implémenter (en 3 lignes de code vous pouvez partager des données !).
- 🙌 Fonctionne à travers iOS, macOS & tvOS.
⚠️ partager_jouer est uniquement destiné à être utilisé avec iOS 15.0+! Il ne fera tout simplement rien sur une autre plate-forme et < iOS 15.0
👻 Mise en route
ℹ️ Vous pouvez vérifier dans le exemple de référentiel pour un exemple complet.
- Ouvrez le projet d’espace de travail Xcode
ios/Runner.xcworkspace
. - Activer « Activités de groupes” capacités sur le principal
Runner
application.
- Importer
share_play
& créer une instance du plugin.
import 'package:shareplay/shareplay.dart';
// [...]
final _shareplayPlugin = SharePlay();
ℹ️ Démarrage rapide
- Ajouter un écouteur lorsqu’un nouveau message est reçu (en
initState()
méthode pour ex).
@override
void initState() {
super.initState();
// [...]
_shareplayPlugin.dataStream().listen((data) {
// do what you want here :)
});
}
- Démarrer une nouvelle activité 🏁.
_shareplayPlugin.start(title: 'My Activity');
- Rejoindre une activité depuis un autre appareil 📲.
ℹ️ En appuyant sur le
SharePlay
bannière en haut de l’écran, vous n’avez pas besoin d’appelerjoin()
méthode!
_shareplayPlugin.send('Hello from Flutter');
ℹ️ Pour en savoir plus, consultez la documentation ci-dessous ou Exemple.
📘 Documents
Nom | Description | Valeur renvoyée |
---|---|---|
.start() |
Créer une activité lorsqu’un appel FaceTime est actif | Future<bool> L’état de la nouvelle activité est créé ou non |
.join() |
Démarre l’activité partagée sur l’appareil actuel, pas nécessaire si l’utilisateur appuie sur le SharePlay bannière |
Future Lorsqu’une nouvelle activité a été rejointe |
.localParticipant() |
Utilisez cette propriété pour différencier le participant sur l’appareil actuel des participants sur d’autres appareils | Future<SPParticipant?> Le participant sur l’appareil actuel, y compris l’identifiant du participant |
.end() |
Termine l’activité pour tout le groupe | Future Lorsque l’activité a été arrêtée |
.leave() |
Quitte l’activité en cours | Future Lorsque l’activité a été abandonnée |
.send() |
Envoyer un message à tous les autres participants | Future Quand le message a été envoyé |
.currentSession() |
Obtenir la session en cours sur l’appareil | Future<SPSession?> Session en cours, y compris l’identifiant de la session et le titre de l’activité |
.dataStream() |
Le flux de messages reçus des autres participants | Stream<SPDataModel> Source des données des participants et des messages |
.newSessionStream() |
Un flux de toutes les sessions créées | Stream<SPSession> Session créée, y compris l’identifiant de la session et le titre de l’activité |
.participantsStream() |
Un flux de tous les participants actifs de la session en cours | Stream<List<SPParticipant>> Tous les participants actifs à l’activité |
.sessionStateStream() |
Un flux de l’état actuel de la session. | Stream<SPSessionState> État de session (SPSessionState.waiting , SPSessionState.joined ou alors SPSessionState.invalidated ) |
👥 Cotisations
Les contributions sont les bienvenues. Contribuez en créant un PR ou créez un ticket 🎉.
🎯 Feuille de route
- Ajoutez une méthode pour vérifier si SharePlay est disponible.
- Afficher une erreur personnalisée lorsque SharePlay n’est pas disponible sur l’ancienne version d’iOS.
- Mettre en œuvre
prepareForActivation()
méthode. - Créer un flux pour gérer les données de message et créer une nouvelle session.
- Obtenez des données locales telles que l’état des participants et de la session.
- Quittez et terminez l’activité.
- Envoyez un message via SharePlay.
- Rejoignez une activité.
- Démarrer une nouvelle activité.
GitHub
Voir Github