2012-04-03 4 views
5

Net olsa da, iOS'ta yüklü uygulamaların bir listesini alamıyoruz, belirli bir dosya türü için kayıtlı uygulamaların listesini belirlememize izin veren hileler var mı? Yani, kullanıcının o dosya türü için Open In ... menüsünde göreceği liste. canOpenURL yalnızca bir boole döndürür, ancak ideal olarak desteklenen yüklü uygulamaların bir listesini bize döndürür. Herhangi bir fikir?Belirli bir dosya türünü destekleyen yüklü uygulamaların listesini programlı olarak geri alma

cevap

2

İki sorunundan ("belirli bir dosya türüne ait uygulamaların listesini belirleme" veya "nasıl açılır? ..." ") kullanıcılar tarafından görülmediği için iOS'un geçerli sürümlerinden şüphe etmekten şüphe duyuyorum uygulamaları gösteren ana ekranlardaki tek tek dosyalar. Bir uygulama, "bu özel dosyayla ayrı bir uygulamayı aç" etkinliği de gerçekleştiremez (Apple Events ile Macintosh'ta kolayca yapılabilir bir şeydir).

Ancak bunlar, Apple ile http://bugreporter.apple.com numaralı dosyada (kayıtlı Apple geliştiricilerinizdeyseniz giriş yapabileceğiniz) harika özellik istekleri gibi görünüyor. Yeterli kişi bu özellikleri (and the potential "open in..." functionality is indeed a frequently requested feature) soruyorsa, Apple bunları gelecekte iOS sürümlerinde dahil etmeyi kesinlikle düşünecektir.

+0

Bence cevabın muhtemelen doğru, ama emin olduğumdan emin olmak istiyorum. Açık Giriş'i uygulamaya çalışmıyorum ... kendim için, belirli bir tür için hangi uygulamaların görüntüleneceğini öğrenmek istiyorum. Bu bir şeyi değiştirir mi? – RealCasually

+2

Hangi uygulamaların hangi dosyalara yanıt verdiğini listelemek için bir API (veya dizi) yok. İstek listemiz için başka bir şey. –

-1

Bu örnek programı görebilirsiniz. Bu size yardımcı olabilir. UTI (Unique Type Identifier) ​​özelliği ile UIDocumentaInteractionController sınıf örneğini kullanmıştır. Uygulamanızda açtığınız dosya türünü destekleyen telefonunuzdaki yüklü uygulamaların listesini yeniden yüklemenize yardımcı olur.

//Following in header file: 
UIDocumentInteractionController *docInteractionController; 

temsilci Uygulanışı: UIDocumentInteractionController Sadece UIDocumentInteractionController örneğini oluşturmaya gerek tarafından kesinlikle mümkün de Sen convience

http://developer.apple.com/library/ios/#samplecode/DocInteraction/Introduction/Intro.html

6

Açık uyarınca İYE, tesisi biraz yeniden yazmak gerekebilir :

<UIDocumentInteractionControllerDelegate> 

.m:

//Here the url is the document URL that you want to open (or you want to apply open in functionality) 
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:url]; 
self.docInteractionController.delegate = self; 

Aç yöntemi aşağıdaki gibi olacak:

- (void) openIn: (id) sender { 
    [self.docInteractionController presentOptionsMenuFromBarButtonItem:sender animated:YES]; 
} 

ve bir kez yapılır:

[self.docInteractionController dismissMenuAnimated:YES]; 

ve bu kadar. Bu, belge için desteklenen uygulama listesini listeler ve bunların seçilmesiyle, ilgili uygulamayı başlattığımız belge URL'siyle başlatır.