2016-09-27 1 views
1

Wenn ich das Apple-Beispiel folgen habe ich immer ein nilactiveTab:Wie bekomme ich einen aktiven Tab in einer 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) 
        } 
       } 
      }) 
     }) 
    }) 
} 

Antwort

2

Ihre Safari App Erweiterung Ihre Erweiterung zugreifen können, um den Zugriff nur auf die Registerkarten Websites konfiguriert.

In Ihrem Info.plist, stellen Sie sicher, dass die SFSafariWebsiteAccess dictionary:

  • Hat eine Stufe gleich "Einige" oder "Alle".

  • Hat alle erforderlichen Domänen in der aufgeführten erlaubt Domains Array (wenn Stufe = "Einige").

Beachten Sie, dass Website-Zugriffsberechtigungen Ihrer Erweiterung des in Safari>Einstellungen>Extensions angezeigt. Es wird empfohlen, den Zugriff auf Ihre Website auf "Einige" (und explizite Domains) zu beschränken, sofern Sie nicht wirklich auf jede Website zugreifen müssen.

Verwandte Themen