簡體   English   中英

Zattoo App網址方案

[英]Zattoo App url scheme

我需要從我的應用程序中打開Zattoo應用程序(在按鈕單擊事件上)

我所做的是

let url:NSURL? = NSURL(string: "zattoo://")
if UIApplication.sharedApplication().canOpenURL(url!) {
       UIApplication.sharedApplication().openURL(url!)

    } else {

        print("App not installed")

        //redirect to safari because the user doesn't have Zattoo App installed

        UIApplication.sharedApplication().openURL(NSURL(string: "https://itunes.apple.com/de/app/zattoo-tv-app-sports-news/id423779936?l=en")!)
   }

canOpenURL()總是返回false(即使我的設備上安裝了Zattoo應用程序),因此else中的代碼也總是執行。

但是,如果刪除檢查並僅執行

 let url:NSURL? = NSURL(string: "zattoo://")

 UIApplication.sharedApplication().openURL(url!)

它完美地打開了Zattoo應用程序。 奇怪!

我做錯了什么?

在iOS9中,您應該注冊要用於打開其他應用程序的自定義方案。 它應該被存儲為字符串(定制方案)與陣列LSApplicationQueriesSchemes在關鍵Info.plist文件。 從官方文檔( https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW14 ):

LSApplicationQueriesSchemes(Array-iOS)指定您希望應用程序能夠與UIApplication類的canOpenURL:方法一起使用的URL方案。 對於希望您的應用程序與canOpenURL:方法一起使用的每個URL方案,將其作為字符串添加到此數組中。 閱讀canOpenURL:方法說明,以獲取有關聲明支持的方案和使用該方法的重要信息。

有一個示例如何使用它: https : //github.com/gatzsche/LSApplicationQueriesSchemes-Working-Example

嘗試這個 :-

if let url = NSURL(string: "zattoo://") {
let canOpen = UIApplication.sharedApplication().canOpenURL(url)

}

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM