설정 페이지에서 3 개의 링크를 포함하고 싶습니다
- 내 앱 지원 사이트
- YouTube 앱 튜토리얼
- 내 기본 사이트 (예 : 'Created by Dale Dietrich'라벨에 연결)
이 사이트와 웹, 문서를 검색했는데 분명한 것이 없습니다.
참고 : 내 앱에서 웹 페이지를 열고 싶지 않습니다. Safari로 링크를 보내고 싶습니다. 링크가 열려 있습니다. 설정 페이지에서 동일한 작업을 수행하는 많은 앱을 보았으므로 가능해야합니다.
설정 페이지에서 3 개의 링크를 포함하고 싶습니다
이 사이트와 웹, 문서를 검색했는데 분명한 것이 없습니다.
참고 : 내 앱에서 웹 페이지를 열고 싶지 않습니다. Safari로 링크를 보내고 싶습니다. 링크가 열려 있습니다. 설정 페이지에서 동일한 작업을 수행하는 많은 앱을 보았으므로 가능해야합니다.
답변:
내가 한 일은 다음과 같습니다.
다음과 같이 헤더 .h 파일에 IBAction을 작성했습니다.
- (IBAction)openDaleDietrichDotCom:(id)sender;
설정하려는 페이지에 연결하려는 텍스트가 포함 된 UIButton을 추가했습니다.
파일 소유자의 버튼을 IBAction에 적절하게 연결했습니다.
그런 다음 다음을 구현하십시오.
목표 -C
- (IBAction)openDaleDietrichDotCom:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.daledietrich.com"]];
}
빠른
(헤더 파일이 아닌 viewController의 IBAction)
if let link = URL(string: "https://yoursite.com") {
UIApplication.shared.open(link)
}
신속한 구문 :
UIApplication.sharedApplication().openURL(NSURL(string:"http://www.reddit.com/")!)
iOS 9.3 이하의 새로운 Swift Syntax
Swift의 새로운 버전 (아마도 신속한 2?)에서 UIApplication.sharedApplication ()은 이제 UIApplication.shared입니다 (전산 적 인 속성을보다 잘 사용합니다). 또한 URL은 더 이상 암시 적으로 NSURL로 변환 할 수 없으므로 다음과 같이 명시 적으로 변환해야합니다!
UIApplication.sharedApplication.openURL(NSURL(string:"http://www.reddit.com/") as! URL)
iOS 10.0부터 새로운 Swift 구문
openURL 메소드는 더 이상 사용되지 않으며 iOS 10.0부터 옵션 객체 및 비동기 완료 핸들러를 사용하는보다 다양한 메소드로 대체되었습니다.
UIApplication.shared.open(NSURL(string:"http://www.reddit.com/")! as URL)
openURL(_:)
iOS 10.0에서는 더 이상 사용되지 않으며 대신 open(_:options:completionHandler:)
UIApplication 에서 인스턴스 메소드 를 호출해야합니다 .
if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
항상 더 나은 서비스를 제공합니다. 오타를 잡기 위해 문장 assert
에서 오류를 원할 수도 else
있습니다.
여기서는 열려있는 URL이 장치 또는 시뮬레이터로 열 수 있는지 확인해야합니다. 몇 시간 (시뮬레이터의 대다수) 때문에 충돌이 발생한다는 것을 알았습니다.
목표 -C
NSURL *url = [NSURL URLWithString:@"some url"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
스위프트 2.0
let url : NSURL = NSURL(string: "some url")!
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
스위프트 4.2
guard let url = URL(string: "some url") else {
return
}
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
canOpenURL
. 나는 왜 당신이 단순히 전화하지 않는지 알지 openURL:url
못하고 실패하면 실패를 처리합니다. canOpenURL
주로 현재 앱을 떠나지 않고 앱 설치를 감지하는 데 사용됩니다.
openURL(_:)
iOS 10.0에서는 더 이상 사용되지 않으며 대신 open(_:options:completionHandler:)
UIApplication 에서 인스턴스 메소드 를 호출해야합니다 .
-openURL:
UIApplication 의 메소드를 살펴보십시오 . NSURL 인스턴스를 시스템에 전달하면 시스템에서 열 응용 프로그램을 시작하고 해당 응용 프로그램을 시작할 앱을 결정할 수 있습니다. ( -canOpenURL:
현재 시스템에 설치된 앱에서 URL을 처리 할 수없는 경우를 대비하여 먼저 확인하고 싶을 수도 http://
있습니다. 일반 링크 에는 문제가되지 않습니다 .)
openURL(_:)
iOS 10.0에서는 더 이상 사용되지 않으며 대신 open(_:options:completionHandler:)
UIApplication 에서 인스턴스 메소드 를 호출해야합니다 .
제공된 URL text
에 스키마가 있는지 확실하지 않은 경우 :
NSString* text = @"www.apple.com";
NSURL* url = [[NSURL alloc] initWithString:text];
if (url.scheme.length == 0)
{
text = [@"http://" stringByAppendingString:text];
url = [[NSURL alloc] initWithString:text];
}
[[UIApplication sharedApplication] openURL:url];
text
here)은 하드 코딩되지 않으며 이와 같은 코드가 필요합니다.
완료 버튼이있는 Swift 3 솔루션
잊지 마세요 import SafariServices
if let url = URL(string: "http://www.yoururl.com/") {
let vc = SFSafariViewController(url: url, entersReaderIfAvailable: true)
present(vc, animated: true)
}
이 답변은 iOS 10.0부터 더 이상 사용되지 않으므로 더 나은 답변은 다음과 같습니다.
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}else{
UIApplication.shared.openURL(url)
}
y ko 목표 -c
[[UIApplication sharedApplication] openURL:@"url string" options:@{} completionHandler:^(BOOL success) {
if (success) {
NSLog(@"Opened url");
}
}];
openURL ( :) 은 iOS 10.0에서 더 이상 사용되지 않으며 대신 UIApplication에서 다음 인스턴스 메소드를 사용해야합니다. open ( : options : completionHandler :)
Swift를 사용한 예제 Safari에서
" https://apple.com " 이 열립니다 .
if let url = URL(string: "https://apple.com") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
스위프트 5 :
func open(scheme: String) {
if let url = URL(string: scheme) {
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:],
completionHandler: {
(success) in
print("Open \(scheme): \(success)")
})
} else {
let success = UIApplication.shared.openURL(url)
print("Open \(scheme): \(success)")
}
}
}
용법:
open(scheme: "http://www.bing.com")
참고: