Na stronie ustawień chcę dołączyć trzy linki do
- Moja witryna pomocy dla aplikacji
- Samouczek aplikacji YouTube
- Moja podstawowa witryna (tj. Link do etykiety „Created by Dale Dietrich”).
Przeszukałem tę stronę, Internet i moją dokumentację i nie znalazłem nic oczywistego.
UWAGA: Nie chcę otwierać stron internetowych w mojej aplikacji. Chcę tylko wysłać link do Safari, a ten link będzie tam otwarty. Widziałem wiele aplikacji, które robią to samo na stronie Ustawienia, więc musi to być możliwe.
ios
url
mobile-safari
Dale Dietrich
źródło
źródło
Odpowiedzi:
Oto co zrobiłem:
Utworzyłem IBAction w plikach nagłówka .h w następujący sposób:
Dodałem UIButton na stronie Ustawienia zawierającej tekst, który chcę połączyć.
Odpowiednio podłączyłem przycisk do IBAction w File Owner.
Następnie wykonaj następujące czynności:
Cel C
Szybki
(IBAction w viewController, a nie w pliku nagłówkowym)
źródło
Szybka składnia:
Nowa składnia Swift dla iOS 9.3 i wcześniejszych
Począwszy od jakiejś nowej wersji Swift (być może swift 2?), UIApplication.sharedApplication () jest teraz UIApplication.shared (domyślam się, że lepiej wykorzystuję obliczone właściwości). Dodatkowo adres URL nie jest już domyślnie konwertowany na NSURL, należy jawnie przekonwertować za pomocą as!
Nowa składnia Swift od iOS 10.0
Metoda openURL została uznana za przestarzałą i zastąpiona bardziej uniwersalną metodą, która pobiera obiekt opcji i procedurę asynchronicznego uzupełniania od iOS 10.0
źródło
openURL(_:)
był przestarzały w iOS 10.0, zamiast tego powinieneś wywołać metodę instancjiopen(_:options:completionHandler:)
na UIApplication.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
zawsze będzie służyć lepiej. Może chcęassert
i błąd welse
instrukcji, aby złapać literówki.Tutaj wymagane jest jedno sprawdzenie, czy adres URL, który ma być otwarty, można otworzyć za pomocą urządzenia lub symulatora, czy też nie. Ponieważ czasami (większość w symulatorze) znalazłem, że powoduje awarie.
Cel C
Swift 2.0
Szybki 4.2
źródło
canOpenURL
. Nie rozumiem, dlaczego po prostu nie zadzwonisz,openURL:url
a jeśli zawiedzie, poradzisz sobie z niepowodzeniem.canOpenURL
służy głównie do wykrywania instalacji aplikacji bez opuszczania bieżącej aplikacji.openURL(_:)
był przestarzały w iOS 10.0, zamiast tego powinieneś wywołać metodę instancjiopen(_:options:completionHandler:)
na UIApplication.Spójrz na
-openURL:
metodę UIApplication. Powinno to pozwolić na przekazanie instancji NSURL do systemu, która określi, w której aplikacji ją otworzyć i uruchomić tę aplikację. (Pamiętaj, że prawdopodobnie będziesz chciał-canOpenURL:
najpierw sprawdzić , na wypadek gdyby adres URL nie był obsługiwany przez aplikacje aktualnie zainstalowane w systemie - chociaż nie jest to problem w przypadku zwykłychhttp://
linków).źródło
openURL(_:)
był przestarzały w iOS 10.0, zamiast tego powinieneś wywołać metodę instancjiopen(_:options:completionHandler:)
na UIApplication.A jeśli nie masz pewności, czy podany adres URL
text
ma schemat:źródło
text
tutaj) nie jest zakodowany na stałe i potrzebujesz takiego kodu.Nieaktualna wersja Celu C to:
źródło
Swift 3.0
Obsługuje również urządzenia ze starszymi wersjami iOS
źródło
Rozwiązanie Swift 3 z przyciskiem Gotowe
Nie zapomnij
import SafariServices
źródło
Ponieważ ta odpowiedź jest przestarzała od iOS 10.0, lepsza odpowiedź to:
y en Cel-c
źródło
openURL ( :) został uznany za przestarzały w iOS 10.0, zamiast tego powinieneś użyć następującej metody instancji na UIApplication: open ( : options: completeHandler :)
Przykład użycia Swift
Spowoduje to otwarcie „ https://apple.com ” w Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
źródło
W SWIFT 3.0
źródło
Swift 5:
Stosowanie:
Odniesienie:
OpenURL w iOS10
źródło
Spróbuj tego:
źródło
W Swift 1.2 spróbuj tego:
źródło
Rozwiązanie Swift 4:
źródło