2016-11-16 4 views
5

Problème avec le scénario suivant. Avant de poster en débordement de pile, j'ai passé plusieurs heures derrière ça. ScénarioCopiez du texte dans le presse-papiers via safari et lisez les données du presse-papiers dans iOS App

Étape 1: Via Safari (ou un autre navigateur) L'utilisateur naviguera sur une page (ie www.abcdef.com) et à partir de cette page, le texte sera copié dans le presse-papiers iOS (via l'utilisateur Étape 2: L'application iOS sera lancée et l'application iOS recevra/lira les données du presse-papiers (sauvegardées/écrites par safari).

Est-ce possible? et si comment? Si ce n'est pas possible, pouvez-vous partager la raison derrière cela?

Répondre

0

Oui, essayez de vérifier cette

UIPasteboard.general.string 
+0

Salut @Vlad, j'ai essayé via UIPasteboard.general.string ... Il fonctionne d'une application iOS à une autre application iOS ... mais (A) ne fonctionne pas avec navigateur web comme safari ... (B) probablement Je ne peux pas définir correctement les données via safari, pouvez-vous partager n'importe quelle ressource/URL pour cela? –

+0

non, c'est tout ce que j'ai –

+0

Mobile Safari ne se comporte pas différemment des autres applications utilisant le carton. Tant que l'utilisateur sélectionne le texte d'une page et le copie, vous pouvez le coller n'importe où avec le code ci-dessus. La seule raison pour laquelle cela ne fonctionnerait pas, je peux l'imaginer, c'est si le site essaie de désactiver la copie tous ensemble (avec javascript ou quelque chose). Certains sites font cela pour essayer de "protéger le contenu". Avez-vous essayé cela avec des sites différents et du texte normal? – Gero

5

Oui, vous pouvez le faire, here est un exemple de cette

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
if (pasteboard.string != nil) { 
    // Do something with the contents... 
} 
+0

Apple montre une erreur -> nspasteboard - aucune methdo de classe connue pour selector generalPasteBoard –

+0

@MuhammadMahbuburRahman Mis à jour ma réponse – Rajat

+0

Nice Answer. En général, le tableau de bord, tandis que l'utilisateur copie une autre donnée, puis mes données supprime. Je dois copier dans le presse-papiers avec une étiquette. Comment faire ça? –

0

Je l'ai fait la même chose, mais pour Chrome. Vous aurez besoin de 3 composants:

  • Browser extention
  • gestionnaires côté serveur
  • iOS app

D'abord, vous devez créer une extension pour Safari et mettre une nouvelle option dans le contexte menu probablement, ou par tout autre moyen accessible le rendre disponible à l'utilisateur. Ensuite, lorsque l'utilisateur sélectionne votre action personnalisée, vous envoyez les données à votre serveur. Le serveur peut ensuite envoyer une notification à votre application iOS et lorsque l'utilisateur ouvre l'application, il peut télécharger le (s) message (s) nouvellement copié (s).

Bien sûr, lorsque vous faites tout cela, vous devriez penser à créer une base de données utilisateur, authentifier correctement les utilisateurs et sécuriser la transmission de données.