SORU
5 Mayıs 2010, ÇARŞAMBA


Nasıl bir iPhone uygulaması ile ilişkilendirilecek dosya türlerini mı?

Dosya türleri ile iPhone uygulaması ilişkilendirme konusunda.

this bilgilendirme söz konusu uygulamalar özel URL protokolleri ile ilişkili olabileceğini öğrendim.

O zamandan beri bir yıl önce Apple 'Destek' bir adım daha ileri gidiyor ve uygulamaları sağlayan dosya türleri ile ilişkilendirmek. Belge tanıtıldı neredeyse Eğer app kurma hakkında documentation bilinmeyen dosya türü karşılaştığında uygun diğer uygulamaları başlatmak için konuşmak çok var. Bu Derneği URL protokolü kaydetme gibi kutunun dışında herhangi bir uygulama için çalışmıyor demektir.

Soruya götürüyor: Safari veya Mail seçme ilişkili uygulamalar için bu sistem uygulanabilir gibi sistem uygulamaları, ya da bir şey yaparlar, daha önce olduğu gibi?

CEVAP
6 Mayıs 2010, PERŞEMBE


Dosya türü işleme 3.2, ve zaten varolan özel URL şemaları farklı iPhone OS ile yeni. Uygulamanız, belirli belge türleri için Kayıt ve Belge Denetleyicisi kullanan herhangi bir uygulama kendi uygulama için bu belgeler işleme uzatır.

Örneğin, benim uygulama Molecules kaynak kodu kullanılabilir () yönetir .pdb ve .pdb.gz eğer desteklenen başka bir uygulama içinde e-posta yoluyla ya da aldıysanız dosya türleri.

Destek kayıt olmak için Bilgileri aşağıdaki gibi bir şey olması gerekir.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>

İki resim Posta ve diğer uygulamalar için desteklenen türler gösteren belgeler geçiren bir simge olarak kullanılacak sağlanır. LSItemContentTypes anahtar uygulama açmak için Üniforma Tip Tanımlayıcıları bir dizi sağlamak (İye) sağlar. Sistem tanımlı bir liste için İye, bakın Elma Uniform Type Identifiers Reference. İye daha fazla ayrıntı Uniform Type Identifiers Overview Elma bulunabilir. Bu kılavuzlar, bu özelliği Mac taşıdık arasında olmuştur çünkü Mac geliştirici merkezi bulunabilir.

Bu İye yukarıdaki örnekte kullanılan bir sistem tanımlı, ama diğer uygulamaya özel bir İYE idi. Uygulamaya özel UTI, sistemdeki diğer uygulamaları bunun farkında yapılabilir verilmesi gerekir. Bunu yapmak için, Bilgi için bir bölüm ekleyin.aşağıdaki gibi plist:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.plain-text</string>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Molecules Structure File</string>
        <key>UTTypeIdentifier</key>
        <string>com.sunsetlakesoftware.molecules.pdb</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>pdb</string>
            <key>public.mime-type</key>
            <string>chemical/x-pdb</string>
        </dict>
    </dict>
</array>

Bu belirli bir örnek ile com.sunsetlakesoftware.molecules.pdb İYE ihracat .pdb uzantısı, MIME tipi chemical/x-pdb karşılık gelen dosya.

Bu, başvuru belgeleri e-posta ekli veya sistemdeki diğer uygulamalardan ele almak mümkün olacak. Posta dokunun-ve-tutun belirli bir Eki açmak için uygulamaların bir listesini ekrana getirmek için.

Eki açıldığında, uygulama başlatılır ve -application:didFinishLaunchingWithOptions: uygulama temsilci yöntemi bu dosyayı işleme işlemek gerekir. Dosyaları Mail bu şekilde yüklü bir alt geldiler ne karşılık altında uygulamanızın Belgeler dizinine kopyalanır gibi görünüyor. Uygulama temsilci yöntemi aşağıdaki gibi bir kod kullanarak içerisinde bu dosya için URL alabilirsiniz:

NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];

Bu özel URL şemaları işlemek için kullanılan aynı yaklaşım olduğunu unutmayın. Aşağıdaki gibi bir kod kullanarak başkalarından dosya URL ayırabilirsiniz:

if ([url isFileURL])
{
    // Handle file being passed in
}
else
{
    // Handle custom URL scheme
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christian Atlas

    Christian At

    26 Mart 2009
  • jat4011

    jat4011

    16 EKİM 2010
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006