問題タブ [launch-services]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - ファイルを開く可能性のあるアプリケーションを一覧表示する
ユーザーのコンピュータにインストールされている、ファイル (私の場合は画像) を開くために使用できるアプリケーションのリストを取得することはできますか?
safari - システム ブラウザの設定に関係なく、Safari で URL を開く
私の Objective-C プログラムでは、システムのデフォルト ブラウザが何であれ、Safari で URL を開く必要があります。これは、Firefox やその他のブラウザーを起動する可能性があるため、これは機能しないことを意味します。
私はこれに近いと思います:
パラメータとして URL を渡す方法を理解する必要があるだけです...もっと簡単な方法はありますか?
ありがとう!
更新:次のコードは、必要な URL で Safari を起動しますが、Safari はすぐに終了します! これはなぜですか?
で同じ動作を観察しましたLSOpenFromURLSpec
。Safari インスタンスが実行されている場合、正常に動作します。実行中の Safari インスタンスがない場合は、新しいインスタンスを開始し、すぐに終了します。
更新 2: Safari は、Flash が埋め込まれた Web サイトでのみクラッシュします。上記のコードを使用すると、google.com を問題なく開くことができますが、たとえば、YouTube ビデオで Safari がクラッシュします。
objective-c - コードから Mac OS X で特定のファイル拡張子のデフォルト アプリケーションを設定する
特定のファイル拡張子のアプリケーションのリストがあります (LSCopyApplicationURLsForURL を使用)。上記の呼び出しからアプリケーションのいずれかを選択したときに、コードからデフォルトのファイルの関連付けを変更したいと考えています。これを行う方法はありますか?
macos - UTI (Uniform Type Identifier) を指定して、それが準拠するすべてのタイプを見つける
Uniform Type Identifiersを利用するアプリケーションを作成しています。具体的には、さまざまなMIMEタイプを呼び出しUTTypeCreateAllIdentifiersForTag()
て渡しています。
私の希望は、この関数 ( とは異なりますUTTypeCreatePreferredIdentifierForTag()
) が、最も具体的な UTI と、それが準拠するすべての UTI を提供してくれることでした。これは当てはまらないようです -- 単一の UTI を返すか、2 番目の UTI がスプリアスです。
同じヘッダー ファイルで関数がUTTypeConformsTo()
定義されていますが、この UTI が準拠するすべての型の配列を返す関数が望ましいです。
MDItemCopyAttributeList()
そのようなリストを返すように、私には希望があるようです。とは言っMDItemRef
ても、ファイル パスまたは URL から作成できる が必要です。これはあまり良くありません。場合によっては、データがメモリ内にのみ保存され、MIME タイプしか使用できないことがあります。
この情報を取得するには、UTI のデータベース全体を反復処理する必要がありますか?それとも何か不足していますか?
cocoa - Cocoa で「ファイル名はインターネットからダウンロードされました...」プロンプトを有効にします
サーバーから ZIP ファイルをダウンロードするアプリがあり、他のサーバーからプラグインをダウンロードできます。これらのファイルを開く前に、古典的な「Filename.html」の 1 つを提示したいと思います。これは、インターネットからダウンロードした (ファイルの種類) です。開いてもよろしいですか?」というメッセージが最初にファイルを開こうとしたときに表示されます。これは、HTML ファイルを保存して開こうとしたときに Google Chrome が行うのと同じです。
これは特別なファイル属性を設定することで有効になると読みましたが、それがどのような属性であり、これらのファイルに設定する方法が完全にはわかりません。
cocoa - Launch Services 使用時にファイル名を取得する方法
アプリを次のように登録します。
しかし、反対に、ファインダーがアプリに送信するファイル名を取得するにはどうすればよいですか? ファイル名を取得するためにどのメカニズムを設定すればよいですか? この問題に関するドキュメントはありますか?
macos - CFBundleDocumentTypes を Cocoa アプリケーションに動的に割り当てることはできますか?
CFBundleDocumentTypes を Cocoa アプリケーションに動的に割り当てることはできますか? つまり、実行時にアプリが処理する拡張機能をさらに割り当てることができます。
現在、Info.plist で CFBundleDocumentTypes を使用して処理するアプリの拡張機能をいくつか設定していますが、アプリケーションの実行中 (実行時) にコードを使用してこれを行いたいと考えています。基本的に、Info.plist ファイルを変更せずに Launch Services に新しい拡張機能を認識させることはできますか。
ありがとう。
macos - 同じバンドル識別子を持つ複数のアプリを見つける方法は?
特定のバンドル識別子を持つすべてのアプリを(ファイルシステムで)見つける良い方法を知っている人はいますか?NSWorkspace
およびLaunchServicesを使用すると、バンドルIDでアプリを検索できますが、返される結果は1つだけです。Spotlight(NSMetadataQuery
)が役立つかもしれないと思いますが、そのAPIについては少し不明なので、適切なキーがあるかどうかはわかりません。
コマンドラインlsregister
ツール(LaunchServices.framework内)があり、システムにすべてを(再)登録してから、認識しているすべてのレポートをダンプするように指示できます。それは文書化されておらず、その出力を解析するのは苦痛かもしれないので、それに依存することは理想的とは言えないようです。
(背景:私はゲーム改造用のアプリを構築しており、ユーザーがオープンパネルでファイルシステム全体を掘り下げるのではなく、サポートされているゲームの短いリストからすばやく選択するためのUIを提供したいと考えています。ユーザーがゲームの複数のコピーをインストールしている可能性があります:リリースとベータ、改造用の追加コピーなど)
macos - LSGetApplicationForItem の逆
jpeg/gif ファイルのデフォルト アプリケーションとして設定する必要がある画像ビューアー アプリケーションを作成しています。デフォルトのアプリケーションに関する情報を取得するための API LSGetApplicationForItem/Info があります。しかし、アプリケーションを画像ファイルのデフォルト ビューアーとして設定できる API が見つかりません。
助けてください
ios - iOSアプリが他のアプリの[開く]ダイアログに表示されないのはなぜですか?
iOSアプリを他のアプリケーションの「開く」リストに表示できるようにする登録プロセスを実装しようとしています(Appleのドキュメントインタラクションプログラミングトピックで説明されています)。標準のオーディオファイル形式(MP3、AIFF、WAVなど)を提供する任意のアプリからのオーディオをアプリで処理できるようにしたいと考えています。
私が理解しているように、私がする必要があるのはCFBundleDocumentTypes
、関連するサブデータを含むキーをアプリのInfo.plistに追加することだけです。これは私が(Xcode 4のドキュメントタイプエディタを介して)入力したものです:
このコードを追加しても、アプリの[開く]メニューにアプリが表示されません(iPhoneでテストしています。ファイルソースとしてDropboxのMP3を使用しています。アプリAudioMemosとEvernoteは、どちらもDropboxのMP3ファイルに対して表示されます。 、だから私はフォーマットがサポートされていることを知っています)。私が間違っていることは明らかですか、それとも他に実装する必要がありますか?
UTExportedTypeDeclarations
(注:これらはカスタムUTIにのみ必要であると理解しているため、Info.plistに項目を設定していません。システムUTIを使用しているため、必要ではないと思いますが、修正してください。間違っています。)
編集
次のエクスポートされたタイプUTIを追加しましたが、成功しませんでした。