web-dev-qa-db-fra.com

Recevoir une URL dans Ionic pour ios

J'utilise un cadre ionique. J'essaie de mettre en place un moyen de recevoir une URL depuis une autre application. Par exemple, vous êtes dans un navigateur, cliquez sur Partager et envoyez le lien vers une autre application (mon application). J'ai trouvé ce plugin cordova et je l'ai intégré à mon application. Mais c'est pulgin pour Android . J'ai besoin de la même fonctionnalité dans IOS.

Toute idée de quel plugin je dois utiliser pour iOS

Mesures prises par moi pour Android

1) cordova plugin add git: //github.com/Initsogar/cordova-webintent.git 2) Fichier config.xml vérifié et code trouvé pour webintent

<intent-filter>
    <action Android:name="Android.intent.action.SEND" />
    <category Android:name="Android.intent.category.DEFAULT" />
    <data Android:mimeType="text/plain" />
</intent-filter>

Et code app.js

if (window.plugins && window.plugins.webintent) {
  window.plugins.webintent.getUri(function(url) {
    alert("getUri url:"+url);
  });
}

Des suggestions pour la même fonctionnalité dans iOS?

Je vous remercie

23
Hitu Bansal

Tout ce dont vous avez besoin est Custom-URL-scheme cordova plugin.

Vous pouvez le faire manuellement aussi. Pour iOS, ajoutez à votre * .plist. Ou vous pouvez regarder Étape 5

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>URL_SCHEME</string>
    </array>
  </dict>
</array>

Dans iOS, après avoir ajouté un schéma personnalisé, il appelle automatiquement une fonction appelée handleOpenURL.

Pour Android, ajoutez AndroidManifest: (Sous Android, vous pouvez même écouter le schéma http)

<activity Android:label="@string/app_name" Android:name="com.yourpackage.name">
    <intent-filter>
        <action Android:name="Android.intent.action.VIEW" />
        <category Android:name="Android.intent.category.DEFAULT" />
        <category Android:name="Android.intent.category.BROWSABLE" />
        <data Android:scheme="http" Android:Host="example.com" Android:pathPrefix="/" />
        <data Android:scheme="https" Android:Host="example.com" Android:pathPrefix="/" />
    </intent-filter>
</activity>
17
engincancan

Ce que vous recherchez s'appelle Action Extension introduit dans iOS 8. Votre application apparaîtra sous forme de fiche d'acton/share standard dans toutes les applications système et tierces et sera capable de gérer tout type de données, pas seulement. URL.

Guide de programmation des extensions d'application d'Apple

3
Tricertops

ce que vous demandez, c'est une fonction de liaison en profondeur pour votre application. Bien que je ne puisse pas vous fournir la solution exacte, il est assez simple d'écrire quelques lignes de code dans le fichier .plist de votre application ios native (comme ce que vous avez fait pour Android dans le fichier manifest.xml). Elle s'appelle URL scheming , et vous pouvez en créer une pour votre application ios.

Veuillez vous rendre sur http://docs.urbanairship.com/topic-guides/ios-deep-linking.html . J'espère que cela vous indique comment vous pouvez y arriver.

Le code angulaire/ionique qui ouvre 'une autre application qui a fourni des liens profonds une installation (comme youtube, etc.)' - https://medium.com/angularjs-articles/deep-linking-in -ionic-mobile-applications-44d8b4685bb3

3

J'espère que ceci le post de vanger vous aide.

Dans iOS pour ouvrir une application, vous devez savoir quels schémas d'URL sont pris en charge par cette application.

Par exemple, vous pouvez ouvrir email-writer par url, tel que "mailto: [email protected]". Mais la chose est en application, vous pouvez déclarer votre propre régime. Par exemple, dans App1, vous pouvez déclarer un schéma du type "my-app1-scheme". Et dans votre deuxième application, vous devrez ouvrir l'URL "my-app1-scheme: //" et votre App1 s'ouvrira.

Et je viens de trouver ce plugin qui vous permet de le faire plus simplement: https://github.com/EddyVerbruggen/Custom-URL-scheme

2
Sujania

Il semble y avoir un plugin maintenant iOS-Phonegap-app-share-extension . Je n'ai pas essayé cependant.

0
Johnny Oin