我正在處理我的iPhone應用程序中的地圖應用程序。如何從iPhone應用程序啓動另一個應用程序
我有一個按鈕go
。
當用戶點擊這個方法我要檢查,如果用戶已經安裝了對他的iPhone應用程序waze
這個按鈕。如果是,則導航到waze應用程序,否則打開iPhone的默認地圖應用程序。
我正在處理我的iPhone應用程序中的地圖應用程序。如何從iPhone應用程序啓動另一個應用程序
我有一個按鈕go
。
當用戶點擊這個方法我要檢查,如果用戶已經安裝了對他的iPhone應用程序waze
這個按鈕。如果是,則導航到waze應用程序,否則打開iPhone的默認地圖應用程序。
嘗試做這樣:
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
讓你測試是否安裝在您的iPhone位智的應用程序。如果iPhone可以打開網址這意味着你已經擁有該應用程序,它將啓動它。否則,它將啓動默認的地圖應用程序。 Safari不會被調用。
iOS使用URL方案啓動其他應用程序。
看到這裏http://mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html
它的傳言,在未來的蘋果威力供應商更緊密的集成,但我不會指望它。
要打開你需要調用
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
希望這會有所幫助。
這對我有效..謝謝+1 –
請注意,在iOS上,您還可以導航到Google地圖 - 並傳遞查詢字符串或地址。以下是導航到特定地址點的一個示例:
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]];
}
}
只是一個提高用戶體驗的建議。
喜,如果我們打開網址的控制將轉向Safari和在那裏我會得到URL的應用商店網址或任何東西else.my申請點從我的應用程序,用戶可以通過Waze的導航,同時點擊,如果Waze的按鈕應用程序安裝在用戶手機其他明智的默認app.how我可以檢查waze應用程序安裝在用戶的iPhone.c中,請您詳細說明所有這些事情。 –
我編輯了我的答案..對你來說更清楚嗎? – bs7
是的,它是工作正常,沒有打開safari.thank你變化很大.... –