サーチ…


SFSafariViewControllerDelegateを実装する

SFSafariViewControllerDelegateを実装して、ユーザーがSafariViewControllerの完了ボタンを押したときにクラスに通知し、それを却下することもできます。

まず、クラスを宣言してプロトコルを実装します。

class MyClass: SFSafariViewControllerDelegate {

}

解雇時に通知されるデリゲートメソッドを実装します。

func safariViewControllerDidFinish(controller: SFSafariViewController) {
    // Dismiss the SafariViewController when done
    controller.dismissViewControllerAnimated(true, completion: nil)
}

あなたのクラスをSafariViewControllerのデリゲートとして設定することを忘れないでください。

let safariVC = SFSafariViewController(URL: yourURL)
safariVC.delegate = self

実装できる追加のデリゲートメソッドは次のとおりです。

// Called when the initial URL load is complete.
safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) { }

// Called when the user taps an Action button.
safariViewController(_ controller: SFSafariViewController, activityItemsFor URL: URL, title: String?) -> [UIActivity] { }

Safariリーディングリストにアイテムを追加する

SSReadingListシングルトンでaddItemメソッドを呼び出すことによって、Safariのユーザーの読み取りリストにアイテムを追加できaddItem

let readingList = SSReadingList.default()
readingList?.addItem(with: yourURL, title: "optional title", previewText: "optional preview text")

読み取りリストへのアクセスが許可されていない場合、デフォルトの読み取りリストにはnil指定できます。

さらに、読み取りリストがsupportsURLを呼び出しsupportsURL URLをサポートしているかどうかを確認できsupportsURL

SSReadingList.default().supportsURL(URL(string: "https://example.com")!)

指定されたURLがSafari Reading Listでサポートされているかどうかを示すtrueまたはfalseを返します。たとえば、これを使用して、リーディングリストにURLを追加するボタンを表示するかどうかを決定します。

SafariViewControllerでURL​​を開く

最初に必要なフレームワークをインポートすることを忘れないでください。

import SafariServices
//Objective-C
@import SafariServices;

SafariViewControllerインスタンスをインスタンス化します。

let safariVC = SFSafariViewController(URL: URL(string: "your_url")!)
//Objective-C
@import SafariServices;
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];
SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL];

必要に応じて、SafariViewControllerに、読み込みが完了したら読み込みモードに入るように指示することもできます。

let safariVC = SFSafariViewController(URL: URL(string: "your_url")!, entersReaderIfAvailable: true)
//Objective-C
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];
SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL entersReaderIfAvailable:YES];

View Controllerを表示します。

present(safariVC, animated: true, completion: nil)
//Objective-C
[self presentViewController:sfvc animated:YES completion:nil];


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow