2016-09-27 16 views
1

私はアップルの例に従うとき、私はいつもnilactiveTab取得:Safari App Extensionでアクティブなタブを取得するにはどうすればよいですか?

override func toolbarItemClicked(in window: SFSafariWindow) { 
    // This method will be called when your toolbar item is clicked. 

    window.getActiveTab(completionHandler: { (activeTab) in 
     print(activeTab) 
     activeTab?.getActivePage(completionHandler: { (activePage) in 
      print(activePage) 
      activePage?.getPropertiesWithCompletionHandler({ (properties) in 
       print(properties) 
       if properties?.url != nil { 
        let urlString = properties!.url.absoluteString 
        print("URL!", urlString) 
        let videoURL = self.youtubeDl(urlString: urlString) 
        if videoURL != nil { 
         window.openTab(with: videoURL!, makeActiveIfPossible: true, completionHandler: nil) 
        } 
       } 
      }) 
     }) 
    }) 
} 

答えて

2

あなたのSafariのアプリケーション拡張だけで、あなたの拡張機能がアクセスするように構成されているサイトのタブにアクセスすることができます。あなたのInfo.plistで

SFSafariWebsiteAccess dictionaryていることを確認します。

  • は "一部" または "すべて" と等しいレベルです。

  • 許可するドメイン配列(レベルは=「一部」の場合)に記載されているすべての必要なドメインを有します。

拡張機能のウェブサイトへのアクセス許可がサファリ>設定>拡張に表示されていることに注意してください。実際にすべてのウェブサイトにアクセスする必要がない限り、ウェブサイトへのアクセスを「一部」(および明示的なドメイン)に限定することをお勧めします。

関連する問題