MacOSの開発 - SafariServices

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版)


:チュートリアルを参照してもよい-帆の風- 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、コンテンツのブロック

公式チュートリアル:コンテンツブロッカーの作成|アップル開発者用ドキュメント

サンプル:samisharaf98 / AdBlockerPlus:以降のiOS版9とのサファリのためのアンAdBlocker拡張。


4、Safariのアプリの機能拡張(MacOSの10.12)

  • SFSafariExtensionHandler

  • SFSafariExtensionState

  • SFSafariExtensionManager

  • SFSafariExtensionHandling契約

  • SFSafariApplication

  • SFSafariExtensionViewController

  • SFSafariWindow //だけでなく、作成読むことができます

  • SFSafariTab

  • SFSafariToolbarItem

  • SFSafariPage

  • SFSafariPageProperties


Safariのアプリの機能拡張| Appleの開発者用ドキュメント

Safari機能拡張開発ガイド

Safariのアプリケーションの拡張を構築


MacOSの10.12以降、またはインストールMacOSの10.11.5 Safariの10のに適しています。


Safariのアプリケーション開発を読み取って、Webページのコンテンツを調整するのSafariに新しい機能を追加することができます。

A Safariのアプリケーション開発とローカルのアプリケーションがデータを通信して共有することができます。アプリケーションとWeb版に統一されたエクスペリエンスを提供します。

ここに画像を挿入説明

上記メインアプリSafariの拡張であり、共有データは、図に記載されています。

あなたはSafariの拡張プロジェクト、プロジェクト全体の目標として拡張を作成すると、メインターゲットを起動することができます。

164元記事公開 ウォンの賞賛162 ビューに65万+を

おすすめ

転載: blog.csdn.net/lovechris00/article/details/101849432