2015-05-25 7 views
23

Ich benutze ionischen Rahmen. Ich versuche einen Weg zu finden, eine URL von einer anderen App zu erhalten. Sie befinden sich beispielsweise im Browser, klicken auf Freigabe und senden den Link an eine andere App (meine App). Ich habe dieses cordova Plugin gefunden und in meine App integriert. Aber das ist für Android Pulgin. Ich brauche dieselbe Funktionalität in IOS.Empfange URL in Ionic für iOS

Jede Idee, die ich für ios verwenden müssen Plugin

Schritte von mir genommen für Android

1) cordova Plugin hinzufügen git: //github.com/Initsogar/cordova-webintent.git 2 Geprüft) config.xml-Datei und gefunden Code für webintent

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

und app.js Code

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

Irgendwelche Vorschläge für die gleiche Funktion in ios?

Danke

+0

Hey @Hitu Ich bin auch auf der Suche nach der gleichen Art von Funktionalität, haben Sie irgendetwas – Siddharth

+0

@Siddharth, welche Art von Problem Sie jetzt konfrontiert sind? –

+0

@HituBansal hast du das jemals herausgefunden? Das nächste, was ich gefunden habe, war dies http://engineering.curalate.com/2017/03/09/ios-share-ext-with-ionic.html aber das ist immer noch hacky und klingt nicht wie es funktionieren wird so gut. Dann fand ich das, was vielversprechend aussieht ... https://github.com/j3k0/cordova-plugin-openwith –

Antwort

3

was Sie fragen, ist Deep-Link-Funktion für Ihre App. Obwohl ich Ihnen keine genaue Lösung bieten kann, ist es ziemlich einfach, indem Sie wenige Codezeilen in die .plist-Datei Ihrer nativen ios-App schreiben (genau wie Sie es für android in manifest.xml getan haben). Es heißt URL-Planung, und Sie können eine für Ihre iOS-App zu machen.

Bitte gehen Sie zu http://docs.urbanairship.com/topic-guides/ios-deep-linking.html. Ich hoffe, es gibt Ihnen eine Anleitung, wie Sie dies tun können.

Der Winkel/ionische Code, öffnet 'eine andere Anwendung, die tief Anlage zur Verfügung gestellt hat Verknüpfung (wie youtube, etc.)' - https://medium.com/angularjs-articles/deep-linking-in-ionic-mobile-applications-44d8b4685bb3

+0

Nein, ich frage nicht nach Deep Linking. Ich möchte nicht meine App über den Browser öffnen –

17

Alles, was Sie brauchen, ist Custom-URL-scheme cordova Plugin.

Sie können es auch manuell tun. Für iOS fügen Sie Ihre * .plist hinzu. Oder Sie können sehen Step 5

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

In iOS nach benutzerdefinierten Schema Hinzufügen automatisch eine Funktion handleOpenURL genannt nennt.

für Android hinzufügen AndroidManifest: (In android Sie auch http-Schema hören)

<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> 
+0

Ich habe das gleiche implementiert. Ich kann mein Appicon nicht sehen, wenn ich auf den Share-Button von Safari klicke. –

+0

Was meinst du mit appicon? Zum Beispiel haben Sie ein Schema wie 'foo', wenn App auf iOS-Gerät installiert ist, können Sie es wie' href = "foo: // app/home" 'nennen und es sollte Ihre App öffnen, wenn Sie nicht etwas falsch machen – engincancan

+0

Nein Ich nehme an, du verstehst meine Frage falsch. Ich lese einen Artikel im Safari Browser. Ich möchte diesen Link (URL) mit myapp teilen. Wenn ich auf Share from Safari klicke, möchte ich meine App auflisten –

3

Was Sie suchen Action-Erweiterung genannt wird eingeführt in iOS 8. Ihre App in Standard Acton erscheint/Sie können das Blatt in allen System- und Drittanbieter-Apps teilen und alle Arten von Daten verarbeiten, nicht nur URLs.

App Extension Programming Guide von Apple

+0

Ja, aber ich kann das nicht umsetzen. Könnten Sie bitte ein Beispiel dafür geben – kamalpreet

+0

@iMartin Ich dachte, es gibt einen Unterschied zwischen einer Aktionserweiterung und einer Freigabeerweiterung. Handlung impliziert das Betrachten/Transformieren, während Teilen anders ist? – Eno

+0

@Kamalpreet Weil Sie einen JavaScript-Wrapper verwenden? – Tricertops

1

Auf Android, können Sie die WebIntent plugin benutzen, um Ihre App als Empfänger für die Aktien Absicht zu registrieren. Ich bin mir nicht sicher, ob eine ähnliche Erweiterung für iOS verfügbar ist.

+0

Ich erwähne schon, ich brauche es auf iOS .. nicht für Android :) –

+0

Ja, wie ich oben sagte, Ich bin nicht sicher, ob etwas ähnliches für iOS verfügbar ist. Ich habe auch Ionic verwendet, aber ich habe (noch) kein Cordova-Plugin gefunden, das sich in die nativen Sharing-Erweiterungen einklinkt und Hooks in JavaScript integriert. Überlege ernsthaft, mein eigenes zu schreiben. – Eno

2

Hoffe das vanger's post hilft Ihnen.

In iOS, um eine Anwendung zu öffnen, müssen Sie wissen, welche URL-Schemas von dieser App unterstützt werden.

Zum Beispiel können Sie E-Mail-Writer per URL wie "mailto: [email protected]" öffnen. Aber die Sache ist in der Anwendung können Sie Ihr eigenes Schema erklären. In App1 können Sie beispielsweise ein Schema wie "my-app1-scheme" deklarieren. Und in Ihrer zweiten App müssen Sie die URL "my-app1-scheme: //" öffnen und Ihre App1 wird geöffnet.

Und ich habe gerade dieses Plugin, dass Sie dies in einfacher Art und Weise zu tun erlaubt: https://github.com/EddyVerbruggen/Custom-URL-scheme

Verwandte Themen