0

iOS アプリ内から Google マップ アプリを開こうとしています。

私はこのコードを使用しています:

[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];

しかし、それは機能していません。誰が問題を教えてもらえますか?

4

1 に答える 1

1

まずcanOpenURLアプリが開かない。アプリがアプリを開くことができるかどうかを確認するだけです。openURL代わりにメソッドを使用してください。

if([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]])
{
  [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
}

ノート:

URL スキームを使用してサードパーティ アプリを開く場合。デバイスにインストールする必要があります。

canOpenURL:

アプリケーションが特定の URL リソースを開くことができるかどうかを返します。

- (BOOL)canOpenURL:(NSURL *)url

パラメーター

URL

A URL object that identifies a given resource. The URL’s scheme—possibly a custom scheme—identifies which application can

URL を処理します。

戻り値

URL を受け入れるアプリケーションが利用できない場合は NO。それ以外の場合は、YES を返します。

討論

このメソッドは、openURL: が呼び出された場合に、それを処理するために別のアプリケーションが起動されることを保証します。完全な URL が有効であることを保証するものではありません。


オープンURL :

指定された URL でリソースを開きます。

- (BOOL)openURL:(NSURL *)url

パラメーター

URL

An object representing a URL (Universal Resource Locator). UIKit supports the http:, https:, tel:, and mailto: schemes.

戻り値

URL によって特定されたリソースが正常に開かれた場合は YES。そうでなければいいえ。

討論

URL は、同じアプリケーションまたは他のアプリケーション内のリソースを見つけることができます。リソースが別のアプリケーションである場合、このメソッドを呼び出すと、呼び出し元のアプリケーションが終了する可能性があるため、別のアプリケーションを起動できます。

これを呼び出す前に canOpenURL: を呼び出して、それを処理できるアプリケーションがあることを確認できます。

UIApplication クラスを参照してください。

于 2013-03-18T05:20:32.723 に答える