2017-07-21 64 views
1

我正在開發一個應用程序,我試圖創建一個打開用戶下載的應用程序的按鈕。由於之前的問題,我得到了一些工作代碼(Swift)。我有以下幾點。Swift程序在我的iPad上打開下載的應用程序

@IBAction func Website(_ sender: Any) { 

    let powerHooks = "mspbi://app/" 

    let powerUrl = NSURL(string: powerHooks) 
    if UIApplication.shared.canOpenURL(powerUrl! as URL) 
    { 
     UIApplication.shared.openURL(powerUrl! as URL) 

    } else { 
     //redirect to safari because the user doesn't have Power BI 
     UIApplication.shared.openURL(NSURL(string: "http://powerbi.microsoft.com")! as URL) 
    } 
} 

基本上,我有一個按鈕,單擊它時應打開我在iPad上的Microsoft Power BI應用程序。不幸的是,我不斷收到錯誤「這個程序不允許查詢mspbi方案嗎?我擁有的URI直接來自微軟的網站。關於如何打開應用程序的想法?它總是跳過」if「並且直接轉到」else 「

+0

我想問一個跟進!所以我現在可以正確地使用這個按鈕在我的iPad上打開Power BI應用程序......這讓我非常興奮。不過,我很樂意再進一步。我想根據用戶在應用中導航的位置來更改URI/URL。例如,如果用戶位於我的應用的第1頁,我希望該按鈕將他們引導至Power BI的登錄頁面。如果用戶在我的應用的第2頁,我希望按鈕將他們引導到Power BI的項目頁面。思考? – Davis

回答

0

您需要的URL方案添加到應用程序的Info.plist

Apple Developer Documentation對於canOpenURL(_:)

重要

如果您的應用程序在iOS 9.0或鏈接後,您必須聲明 要傳遞給此方法的URL方案。通過將 LSApplicationQueriesSchemes鍵添加到您的應用的Info.plist文件中來實現此目的。如果 爲未使用該鍵聲明的方案調用此方法,則無論是否安裝了適當的應用程序,此方法 始終返回false。 要了解有關密鑰的更多信息,請參閱LSApplicationQueriesSchemes

所以Info.plist創建一個新的Array與關鍵LSApplicationQueriesSchemes與價值mspbi添加項目。

+0

謝謝!我認爲這只是我可以做的事情,如果我試圖打開我自己的應用程序。那是錯誤的嗎? – Davis

+0

它的工作!非常感謝你:) – Davis

+0

@Davis是的,你可以爲任何定義他們的URL方案的第三方應用程序做到這一點 – Paolo

1

您有以下行添加到您的應用程序的Info.plist文件能夠處理應用網址:

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>mspbi</string> //not sure if this is the correct entry, you will have to check for the specific app 
    <string>uber</string> //as an example, this is the working entry for opening the Uber app from your app 
</array> 
相關問題