Jak ustalić, czy użytkownik urządzenia z systemem iOS ma zainstalowaną konkretną aplikację? Jeśli znam nazwę aplikacji, mogę w jakiś sposób użyć canOpenURL
?Jak mogę ustalić, czy użytkownik ma zainstalowaną aplikację na iOS?
Odpowiedz
Jeśli aplikacja obsługuje niestandardowy schemat URL, możesz sprawdzić UIApplication
-canOpenURL:
. Dzięki temu dowiesz się, że dostępna jest aplikacja, która jest w stanie otworzyć ten schemat adresów URL, niekoniecznie która to aplikacja. Nie ma publicznie dostępnego mechanizmu sprawdzania, jakie inne aplikacje zainstalował użytkownik na swoim urządzeniu.
Jeśli sterujesz obiema aplikacjami, możesz również użyć udostępnionego pęku kluczy lub obszaru roboczego do komunikacji między nimi w bardziej szczegółowy sposób.
Można sprawdzić w ten sposób, a także:
BOOL temp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yourAppURL://"]];
if(!temp)
{
NSLog(@"INVALID URL"); //Or alert or anything you want to do here
}
dla szybkich użytkowników
let urlPath: String = "fb://www.facebook.com"
let url: NSURL = NSURL(string: urlPath)!
let isInstalled = UIApplication.sharedApplication().canOpenURL(url)
if isInstalled {
print("Installed")
}else{
print("Not installed")
}
Facebook używa tego https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m wewnętrznie, można zrobić to samo
#define FBSDK_CANOPENURL_FACEBOOK @"fbauth2"
+ (BOOL)isFacebookAppInstalled
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[FBSDKInternalUtility checkRegisteredCanOpenURLScheme:FBSDK_CANOPENURL_FACEBOOK];
});
NSURLComponents *components = [[NSURLComponents alloc] init];
components.scheme = FBSDK_CANOPENURL_FACEBOOK;
components.path = @"/";
return [[UIApplication sharedApplication]
canOpenURL:components.URL];
}
kod w Swift 3
static func isFacebookAppInstalled() -> Bool {
let schemes = ["fbauth2", "fbapi", "fb"]
let schemeUrls = schemes.flatMap({ URL(string: "\($0)://") })
return !schemeUrls.filter({ UIApplication.shared.canOpenURL($0) }).isEmpty
}
- 1. Sprawdź, czy użytkownik ma zainstalowany program Facebook Messenger. IOS 9
- 2. Jak ustalić, czy użytkownik nacisnął przycisk UITableViewCell na 2 sekundy?
- 3. Jak mogę sprawdzić, czy urządzenie IOS ma funkcje telefoniczne?
- 4. Jak ustalić, czy tablica asocjacyjna ma klucz?
- 5. Jak ustalić, czy komputer ma adapter wifi?
- 6. Jak ustalić, czy ciąg ma niealfanumeryczne znaki?
- 7. Jak ustalić, czy dana klasa ma określoną funkcję na szablonie?
- 8. Czy mogę wiedzieć, kiedy użytkownik usuwa moją aplikację?
- 9. Jak ustalić, czy użytkownik przewinął do końca NSTableView
- 10. Jak ustalić, czy użytkownik anuluje subskrypcję Google Play?
- 11. Jak sprawdzić, czy użytkownik ma prawidłową bazę Firebase systemu iS?
- 12. Jak ustalić, czy użytkownik przewinął do dolnej części UITableView?
- 13. Jak zbudować i zarchiwizować aplikację na iOS?
- 14. Jak ustalić, czy użytkownik jest na Edge lub 3G na iPhonie?
- 15. Jak wykryć zainstalowaną wersję Chrome?
- 16. Jak zweryfikować płatną aplikację na iOS
- 17. Jak przetestować aplikację na iOS, czy obsługuje ona IPv6?
- 18. Wewnętrznie dystrybuować aplikację na iOS
- 19. Facebook SDK Logowanie do systemu iOS z zainstalowaną aplikacją Facebook
- 20. Alert TestFlight podczas testowania aktualizacji: masz już zainstalowaną tę aplikację
- 21. Nie mogę ustalić, dlaczego otrzymuję komunikat "Klasa ViewController nie ma inicjalizacji" Błąd w kodzie Swift iOS
- 22. Wykrywanie, czy użytkownik ma na pasku stanu połączenia
- 23. Jak ustalić, czy GraphicsEnvironment istnieje
- 24. Ustal, czy urządzenie iOS ma 32- lub 64-bitowe
- 25. Jak mogę uruchomić aplikację OpenGL zainstalowaną na komputerze z systemem Linux z mojego komputera z systemem Windows?
- 26. Sprawdzanie, czy użytkownik Django ma ustawione hasło
- 27. Wykryj, czy użytkownik ma możliwości drukowania?
- 28. Jak mogę sprawdzić, czy użytkownik ma iPhone'a 6 Plus w trybie standardowym czy powiększonym?
- 29. Powolna reakcja klawiatury na aplikację iOS Cordova
- 30. Jako użytkownik, w jaki sposób mogę określić zainstalowaną wersję GitHub Enterprise?
Pierwsza linia nie skompilować dla mnie, ale to zrobił: 'BOOL temp = [[UIApplication sharedApplication] canOpenURL: [bibliotece NSURL URLWithString: @ "yourAppURL: //"]];' – newenglander
Przykro mi, ale co to jest adres URL aplikacji? czy to nazwa aplikacji czy coś takiego? – ColdSteel