SafariServices
記事のディレクトリ
記述フレームワーク
SafariServicesは、Safariの動作やMacOSのiOSアプリケーションを使用するか、サファリを拡張することができます。
- アプリケーションはほぼ同じUIとSafariを提供します。ユーザーがアプリケーションに戻り、その後、このビューでウェブを閲覧することができます。カスタムブラウザソリューションを実装するために比較すると、ビューは、SafariのUIと同じ効果を達成するために以下のメソッドを使用しています。(IOS)
- ユーザーのSafari読書リストに項目を追加します。(IOS)
- それがロードされている場合、コンテンツは、ブロッカー拡張をロードされているかどうかを判断するために、アプリケーションでは、その内容を更新するよう指示。(IOS、MacOSの)
- Safariのアプリケーションの拡張を実現しています。Safariの機能拡張は、アプリケーションにロードされているかどうかを判断します。(MacOSの)
- クッキーはSFAuthenticationSessionによって、アプリケーションとネットワークとSafariの間で共有データへのユーザーは、シングルサインオン(SSO)の経験を得ることができます。
クラスと関連する使用
1、あなたのアプリケーション内のSafari(iOS版)の内容を示します
- SFSafariExtensionViewControllerは//ウェブブラウジング標準ビューを表示します
- SFAuthenticationCompletionHandler //ユーザーがキャンセルまたはログイン認証セッションを完了します
:チュートリアルを参照することができます- CocoonJin -ブログパーク9のiOSのSFSafariViewController
デモ:(SWIFT)tutsplus / iOSの-SafariViewControllerStarterProject:iOSの9:SFSafariViewController入門します
コアコード
- (IBAction)onButtonClick:(id)sender{
NSString *urlString = @"http://www.baidu.com";
SFSafariViewController *sfViewControllr = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:urlString]];
sfViewControllr.delegate = self;
[self presentViewController:sfViewControllr animated:YES completion:^{
//...
}];
}
// Done 按钮
- (void)safariViewControllerDidFinish:(nonnull SFSafariViewController *)controller{
[controller dismissViewControllerAnimated:YES completion:nil];
}
/*
SFSafariViewController 的接口比较少,就不再继续一一列举了。
另外一个定制功能在于 SFSafariViewControllerDelegate 里面的一个方法:
这个代理会在用户点击动作(Action)按钮(底部工具栏中间的按钮)的时候调用,可以传入UIActivity的数组,创建添加一些自定义的各类插件式的服务,比如分享到微信,微博什么的。
*/
-(NSArray<UIActivity *> *)safariViewController:(SFSafariViewController *)controller activityItemsForURL:(NSURL *)URL title:(nullable NSString *)title{
return @[];
}
2、サファリの読書リスト(iOS版)
SSReadingList
// Safariのリーディングリストにユーザーを追加するために使用SSReadingListErrorDomain
SSReadingListErrorCode
:チュートリアルを参照してもよい-帆の風- CSDNブログ読書リスト--SSReadingListにWebページを追加します
コアコード:
[SSReadingList supportsURL:[NSURL URLWithString:@"https://www.baidu.com"]]; //检测阅读列表是否支持添加该网页
[[SSReadingList defaultReadingList]addReadingListItemWithURL:[NSURL URLWithString:@"https://www.baidu.com"] title:@"baidu" previewText:@"hellofdn" error:nil];
/*
URL:需要添加到阅读列表的网页地址
title:网页的标题
previewText:预览的信息
errror:若添加出错后的错误信息,添加成功该值为nil
*/
3、コンテンツのブロック
SFContentBlockerManager
//アプリケーション内で、コンテンツブロッカーと対話するようになりますSFContentBlockerState
状態のコンテンツブロッキング拡大
公式チュートリアル:コンテンツブロッカーの作成|アップル開発者用ドキュメント
サンプル:samisharaf98 / AdBlockerPlus:以降のiOS版9とのサファリのためのアンAdBlocker拡張。
4、Safariのアプリの機能拡張(MacOSの10.12)
-
SFSafariExtensionHandler
-
SFSafariExtensionState
-
SFSafariExtensionManager
-
SFSafariExtensionHandling契約
-
SFSafariApplication
-
SFSafariExtensionViewController
-
SFSafariWindow //だけでなく、作成読むことができます
-
SFSafariTab
-
SFSafariToolbarItem
-
SFSafariPage
-
SFSafariPageProperties
Safariのアプリの機能拡張| Appleの開発者用ドキュメント
MacOSの10.12以降、またはインストールMacOSの10.11.5 Safariの10のに適しています。
Safariのアプリケーション開発を読み取って、Webページのコンテンツを調整するのSafariに新しい機能を追加することができます。
A Safariのアプリケーション開発とローカルのアプリケーションがデータを通信して共有することができます。アプリケーションとWeb版に統一されたエクスペリエンスを提供します。
上記メインアプリSafariの拡張であり、共有データは、図に記載されています。
あなたはSafariの拡張プロジェクト、プロジェクト全体の目標として拡張を作成すると、メインターゲットを起動することができます。