2011-08-29 15 views
5

bundle identifierでアプリケーションからアプリケーションを開くことは可能ですか?デバイス1に2つのアプリがインストールされていて、com.test.app1com.test.app2があるとします。私のapp2からapp1を開くことはできますか?バンドルIDを持つアプリケーションを開く

私はopenUrlメソッドについて知っています。そのために私はinfo.plistにURLスキームを登録しなければなりません。

[[UIApplication sharedApplication] openUrl:[NSURL urlWithString:@"myApp1://"]]; 

しかし、私はURLスキームを登録しなかったか、登録されたURLを知らないとどうなりますか?

任意のアイデア..?

答えて

3

私はそうは考えていません。

+0

はこれがないことをあなたは確かであることを行うにはプライベートAPIを使用することができます可能..?アプリケーションがバンドル識別子でデバイスにインストールされているかどうかを確認できるためです。私はそれを開くためのいくつかの方法があるかもしれないと思っていた。 –

+0

私はAppleが承認した方法は存在しないと思います。 – Akshay

+0

@Akshayは正しいです、それは不可能です。 –

0

URLスキームを使用することは可能です。

+0

これはURL Schemeで可能ですが、バンドルIDを使用してこれが可能であることを知りたいのですが? ?私はURLスキームの登録がない場合は、これを可能にするアプリを開くことです。 –

2

コールはopenUrlコールを使用できますが、成功するにはプロジェクトのxy-Info.plistファイルに値を追加する必要があります。

enter image description here

あなたがして呼び出すことができることをやったら:

[[UIApplication sharedApplication] openUrl:[NSURL urlWithString:@"xingipad://"]];

5

をあなたは

Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); 
NSObject * workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)]; 
BOOL isopen = [workspace performSelector:@selector(openApplicationWithBundleID:) withObject:@"com.apple.mobilesafari"]; 
+0

ありがとうございました! iOS 11で動作し、URLスキームを知る必要はありません。 – DmitryKanunnikoff

+0

プライベートAPIを使用しないでください。 – ekscrypto

+0

@ekscryptoしかし、それは要件を満たすための唯一の方法だと思います。ところで、私たちはAppStoreにこのコードでappを正常にアップロードしました。 –

関連する問題