9

iPhoneアプリで地図アプリケーションに取り組んでいます。

ボタンがありますgo

ユーザーがこの方法でこのボタンをクリックしたときに、ユーザーがwaze自分のiPhoneにアプリケーションをインストールしたかどうかを確認したいと思います。はいの場合はwazeアプリケーションに移動し、そうでない場合はiPhoneのデフォルトのマップアプリを開きます。

4

3 に答える 3

21

このようにしてみてください:

NSString *wazeAppURL = @"waze://";
NSString *mapsAppURL = @"maps://";

BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:wazeAppURL]];

NSString *url = canOpenURL ? wazeAppURL : mapsAppURL;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

ここでcanOpenURLは、WazeアプリがiPhoneにインストールされているかどうかをテストできます。iPhoneがURLを開くことができる場合、waze://それはあなたがすでにアプリを持っていることを意味し、それはそれを起動します。それ以外の場合は、デフォルトのマップアプリを起動します。Safariは呼び出されません。

于 2012-10-20T17:37:08.260 に答える
5

アプリを開くには、電話する必要があります

BOOL canOpenURL = [[UIApplication sharedApplication] 
                       canOpenURL:[NSURL URLWithString:@"app://"]];
if ( canOpenUrl ) [[UIApplication sharedApplication] 
                       openURL:[NSURL URLWithString:url]];

すべてのURLを見つけるには、次のページにアクセスしてください:http: //handleopenurl.com/

特にWazeについては、 http: //handleopenurl.com/scheme/waze

お役に立てれば。

于 2012-10-22T10:04:43.583 に答える
1

iOSでは、Googleマップに移動して、クエリ文字列またはジオポイントを渡すこともできます。特定のジオポイントに移動する1つの例を次に示します。

if (self.mapView.userLocation.location) {
    NSString *urlAsString = [NSString stringWithFormat:@"comgooglemaps://?q=%f,%f", self.mapView.userLocation.location.coordinate.latitude, self.mapView.userLocation.location.coordinate.longitude];
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlAsString]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlAsString]];
    }
} 

ユーザーエクスペリエンスを向上させるための単なる提案。

于 2015-02-24T20:12:34.380 に答える