J'utilise RPSystemBroadcastPickerView
pour afficher une vue de sélecteur, à partir de laquelle un utilisateur peut sélectionner un service de diffusion pour enregistrer l'écran. Sur la base de la documentation, preferredExtension
devrait me permettre de définir quelle extension de diffusion le sélecteur doit afficher.
Le code est super simple:
let broadcastPickerView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 51, height: 51))
view.addSubview(broadcastPickerView)
broadcastPickerView.preferredExtension = "com.milan.nosal.broadcast-extension"
broadcastPickerView.backgroundColor = .clear
broadcastPickerView.showsMicrophoneButton = false
où "com.milan.nosal.broadcast-extension"
est l'identifiant de l'ensemble de l'extension que je veux que le sélecteur propose (j'ai vérifié son exactitude plusieurs fois).
Cependant, lorsque le contrôle est activé, la fenêtre contextuelle affiche d'abord une sélection vide:
Une fois que vous le fermez et appuyez à nouveau sur le contrôle, il affiche l'extension correcte. Cela ne se produit que lorsque l'application est installée (ou réinstallée), après qu'elle s'affiche, elle s'affiche toujours.
S'agit-il du bêta d'iOS 12, ou est-ce que je fais quelque chose de mal? Puis-je "pré-enregistrer" l'extension pour contourner ce problème?
MODIFIER:
Après la publication de l'application, nous avons rencontré le même problème avec nos utilisateurs, mais cette fois, ne pas appuyer plusieurs fois sur le contrôle aide - le sélecteur est toujours vide! Il semble que l'extension soit installée correctement, car elle peut être lancée à partir du centre de contrôle.
Fonctionne sur la version officielle maintenant.
Je pense que c'est le bug d'Apple, mais il a été corrigé dans iOS 12.2 après l'avoir testé.
J'ai le même problème, il semble que Xcode ait des problèmes pour installer broadcastExtension avec votre application. Pour moi, il est lié uniquement au mode débogage. Pour voir l'interface utilisateur correcte, essayez d'activer la diffusion une fois à l'ancienne (centre de contrôle -> touche profonde -> démarrer la diffusion), après quoi dans votre BroadcastPickerView vous verrez l'interface utilisateur correcte (vous poussez iOS pour mettre à jour les informations sur l'extension). Impossible de reproduire en mode de libération.
Vous pouvez trouver exactement votre preferedExtension
ici:
Lorsque vous ajoutez pickerView.preferredExtension
exactement l'identifiant du bundle, votre application sera affichée sur la liste des applications d'enregistrement. J'espère que cela t'aides!