Jak Mogę dodać link do przycisku rate za pomocą swift?

Po Pierwsze Nie wiem, jak zdobyć link przed przesłaniem aplikacji i czy link jest dla każdego kraju app store czy jest uniwersalny?

No I Nie wiem czy sposobem na to jest po prostu wstawienie tam linka w stylu:

@IBAction func rate(sender: AnyObject) {
    UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}

Czy powinienem użyć innego sposobu, aby to zrobić?

Thanks

Author: Luis Felipe, 2015-01-03

9 answers

Spróbuj Tego

Swift 3

func rateApp(appId: String, completion: @escaping ((_ success: Bool)->())) {
    guard let url = URL(string : "itms-apps://itunes.apple.com/app/" + appId) else {
        completion(false)
        return
    }
    guard #available(iOS 10, *) else {
        completion(UIApplication.shared.openURL(url))
        return
    }
    UIApplication.shared.open(url, options: [:], completionHandler: completion)
}

Method, change appId by your App ID

rateApp(appId: "id959379869") { success in
    print("RateApp \(success)")
}

Id959379869 to jest identyfikator, gdy idziesz na swoją stronę Itune aplikacji

Przykład: https://itunes.apple.com/fr/app/hipster-moustache/id959379869?mt=8

Jak uzyskać ID :

  1. konto Itunesconnect
  2. Moje Aplikacje
  3. Kliknij przycisk " + "
  4. Nowy aplikacja iOS
  5. wypełnij wymagane szczegóły
  6. Po wypełnieniu wszystkich szczegółów goto swoją aplikację
  7. Kliknij przycisk Więcej
  8. Zobacz w AppStore
  9. przekieruje Cię do adresu URL aplikacji, który będzie uniwersalny
  10. Look Http URL
 84
Author: YannickSteph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-20 14:08:57

To działa najlepiej dla mnie. Kieruje użytkownika bezpośrednio do komponentu "Napisz recenzję" aplikacji.

Swift 3.1 (wsparcie dla iOS10 i poniżej)

Wprowadza nowe action=write-review

let appID = "959379869"

if let checkURL = URL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
    open(url: checkURL)
} else {
    print("invalid url")
}

...

func open(url: URL) {
    if #available(iOS 10, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
            print("Open \(url): \(success)")
        })
    } else if UIApplication.shared.openURL(url) {
            print("Open \(url)")
    }
}

Testowany i działa na Swift 2.2

let appID = "959379869" // Your AppID
if let checkURL = NSURL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
    if UIApplication.sharedApplication().openURL(checkURL) {
        print("url successfully opened")
    }
} else {
    print("invalid url")
}
 25
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-10 10:38:00

Możesz użyć następującej funkcji i zastąpić APP_ID swoim. Wywołanie tej funkcji otworzy aplikację w App Store link, a użytkownik zobaczy stronę recenzji, na której może łatwo kliknąć i napisać recenzję.

func rateApp(){
   UIApplication.sharedApplication().openURL(NSURL(string : "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(APP_ID)&onlyLatestVersion=true&pageNumber=0&sortOrdering=1)")!);
}
 13
Author: Mahmud Ahsan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-20 13:57:13

Swift 4

let url = URL(string: "itms-apps:itunes.apple.com/us/app/apple-store/id\(YOURAPPID)?mt=8&action=write-review")!
UIApplication.shared.openURL(url)
 10
Author: Alfi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-05 11:03:43

Teraz po iOS 10.3+

Kontroler SKStoreReviewController pozwala użytkownikom oceniać aplikację bezpośrednio z poziomu aplikacji za pomocą okna dialogowego. Jedyną wadą jest to, że możesz poprosić StoreKit o wyświetlenie okna dialogowego, ale nie możesz być pewien, czy tak będzie.

import StoreKit

func requestToRate() {
    SKStoreReviewController.requestReview()
}
 9
Author: Arvind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-21 10:57:56

WARNING: If you are running your app on a simulator

 UIApplication.sharedApplication().openURL(NSURL(string : "url")!) 

Nie zadziała, ponieważ w symulatorze nie ma app store. Aby przetestować tę funkcjonalność, musisz uruchomić aplikację na urządzeniu.

 7
Author: Cliff Weitzman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-22 06:27:53

Dla systemu iOS 10.3+ możesz użyć kontrolera SKStoreReviewController z prostym oknem dialogowym i wybrać ocenę w oknie w stylu alertów. Aby go użyć, należy zaimportować bibliotekę StoreKit. Tak więc uniwersalny sposób oceniania aplikacji jest taki:

import StoreKit

func rateApp(){
if #available(iOS 10.3, *) {
                SKStoreReviewController.requestReview()
            } else {
                guard let url = URL(string: "itms-apps://itunes.apple.com/ru/app/cosmeteria/id1270174484") else {
                    return
                }

                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
}

I kiedy próbujesz uruchomić go w simulator, nie zobaczysz okna App Store, więc spróbuj go na urządzeniu i będzie działać. W ten sposób obejmuje wszystkie wersje iOS, wykorzystując wszystkie możliwości. Część ścieżki w adresie aplikacji "/ us / app " oznacza Sklep z aplikacjami lokalizacja, na przykład " us " oznacza USA. Możesz łatwo znaleźć swój identyfikator aplikacji w ciągu adresu, otwierając aplikację w App Store w dowolnym browser.To Pobierz link, wystarczy skopiować adres w przeglądarce. Zmiana "https:// "na" itms-apps: / / "pozwala otworzyć aplikację w aplikacji App Store, podczas gdy "https" otwiera stronę internetową w Safari

 4
Author: SergPanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-07 08:08:36

Przejdź do swojego konta itunesconnect - > Moje aplikacje - > kliknij przycisk " + " - > Nowa aplikacja na iOS - > wypełnij wymagaj szczegółów - > Po wypełnieniu wszystkich szczegółów przejdź do swojej aplikacji - > kliknij przycisk więcej - > Zobacz w AppStore - > przekieruje Cię do adresu URL aplikacji będzie to uniwersalne i będzie takie samo po uruchomieniu aplikacji .

 1
Author: Krunal Darji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-03 13:14:50

Swift 3

  func rateApp(){
UIApplication.shared.open(URL(string : "itms-apps://itunes.apple.com/app/id959379869")!, options: [:]) { (done) in
  // Handle results

}}

Id959379869 to jest identyfikator, gdy idziesz na stronę iTunes swojej aplikacji

 1
Author: matiasverde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 10:03:47