2015-05-31 15 views
6

Ich möchte meine Ionic App (über Cordova) registrieren, um bestimmte Dateitypen zu öffnen. Genau wie Dropbox. Wenn ein Benutzer eine Datei in einer anderen Anwendung (wie E-Mail) hat und er auf "Öffnen mit" klickt, gibt es eine Liste mit der Dropbox-App.Cordova Register Dateitypen zu öffnen mit 'Liste

Heres ein Tutorial von Apple: https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/RegisteringtheFileTypesYourAppSupports.html

Gibt es eine Cordova-Plugin, das sowohl Android und iOS unterstützt und gibt einen JS-API auf diese Funktion? Danke im Voraus.

Antwort

4

Sie können die FileType-Zuordnung in Cordova erreichen.

Es umfasst 2 Schritte.

1) Registerdateien in Android Manifest/iOS plist als

Manifest

<intent-filter 
    android:icon='@drawable/ic_launcher' 
     android:label='AndroidMHT File' 
    android:priority='1'> 
    <action android:name="android.intent.action.VIEW" /> 
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:mimeType="*/*" /> 
    <data android:pathPattern="*.mht" /> 
</intent-filter> 
<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="*" android:pathPattern=".*\\.mht" /> 
    <data android:scheme="https" android:host="*" android:pathPattern=".*\\.mht" /> 
</intent-filter> 
<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:mimeType="message/rfc822" android:scheme="http" /> 
    <data android:mimeType="multipart/related" android:scheme="http" /> 
    <data android:mimeType="message/rfc822" android:scheme="https" /> 
    <data android:mimeType="multipart/related" android:scheme="https" /> 
</intent-filter> 

plist

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array> 
      <string>Document-molecules-320.png</string> 
      <string>Document-molecules-64.png</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>Molecules Structure File</string> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>LSHandlerRank</key> 
     <string>Owner</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.sunsetlakesoftware.molecules.pdb</string> 
      <string>org.gnu.gnu-zip-archive</string> 
     </array> 
    </dict> 
</array> 

2) Verwenden Sie die File Opener Plugin for Cordova

Sie müssen möglicherweise notwendig passieren Flags, um diese Dateien zu öffnen.

Referenz: Android, iOS und ein phonegap community forum thread

Hoffe, es hilft.

+0

Danke für die Links (Ich reparierte das Android). Ich hatte keine Chance zu testen, aber es scheint der richtige Ansatz zu sein. Ein tatsächliches Plug-in wäre einfacher (wie das Registrieren eines URL-Schemas), aber ich denke, dass ich einen Hook verwenden kann, um die plist-Änderungen durch ein Skript auszuführen. AFAIK, das "Dateiöffner-Plugin" ist NICHT relevant, dh es würde meiner App sagen, dass das OS die Datei eines anderen öffnen soll, während diese Frage nur dafür sorgt, dass eine andere App (wie E-Mail) die Datei an meine App senden kann . –

+0

Hallo, Wie kann ich die Dateiadresse in der Webanwendung selbst erhalten? (Ein Benutzer, der auf einem Foto gepresst wird, und jetzt wird er in meine App übertragen, was kommt als nächstes?) –

+0

Hat jemand den nächsten Schritt gefunden, um die Datei zu holen? @DanielGolub? –

0

überprüfen Sie diese link. In Bezug auf Let'sRefactor ist es korrekt, mit Ausnahme von Dateiöffner, in der Absicht sollten Sie identifizieren, welche Funktion (in natürlichem natürlich) aufrufen, wenn ein Benutzer Datei mit Ihrer App öffnen. Es ist alles in dem obigen Link erklärt.

Verwandte Themen