1

2 つのアプリケーションを作成しましたが、それらの間の相互作用が必要です。つまり、最初のアプリケーションには、数値を追加する必要があるビューがあります。ただし、書き留めたくない場合は、他のアプリが生成します。したがって、2 番目のアプリが生成する番号が必要で、それをビューに入力します。

このテーマについてよく読んでいますが、カスタム URL スキームを使用する必要があることはわかっています。たとえば、これに関する良い記事: link。したがって、理解できれば、次のようなスキームを定義する必要があります。

最初のアプリで:

  • URL 識別子: com.mycompany.myfirstapp
  • URL スキームの最初の項目: myFirstApp

2 番目のアプリでは:

  • URL 識別子: com.mycompany.mysecondapp
  • URL スキームの最初の項目: mySecondApp

次に、最初のアプリで、たとえばボタンの IBAction で:

[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mySecondApp://pleaseGenerateNumber"]];

2 番目のアプリでは、実装する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

メソッドと

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

方法。次に、URL を解析し、番号の生成を行います。しかし、問題はここにあります。最初のアプリによって生成された番号を最初のアプリに「伝える」にはどうすればよいですか? もう一度 openURL を使用して、URL 経由で番号を取得する必要がありますか?

4

2 に答える 2

1

UIApplicationDelegateiOS4.2 で利用可能。プロトコル メソッドを使用できるスキームを使用して、あるアプリケーションから別のアプリケーションにデータを渡す

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
       sourceApplication:(NSString *)sourceApplication 
       annotation:(id)annotation

ドキュメントから、次のannotationとおりです。

受信アプリケーションに情報を伝達するために、ソース アプリケーションによって提供されるプロパティ リスト オブジェクト。

編集: iOS 3.2 で注釈を使用できることがわかりました。application:DidFinishLaunchingWithOptions:オプション ディクショナリで注釈キーを使用できます。

于 2011-04-14T14:21:34.583 に答える
0

最大限の互換性 (iOS 3 以降) を得るには、openURL を再度使用して、番号を URL パラメーターとして渡す必要があります。システム提供の URL 解析コードを再利用するには、URL 形式が HTTP テンプレートに従っていることを確認してください。

schema://kinda-host/kinda-path?params

コマンド コードとして kinda-host を使用し、データをパスやパラメーターとして渡すことを検討してください。このようにして、追加の URL スキームを導入することなく、通信プロトコルを拡張できます。

はい、これは醜いです。そんなiOSです。

于 2011-04-14T14:31:50.247 に答える