Swift程序在我的iPad上打开下载的应用程序
问题描述:
我正在开发一个应用程序,我试图创建一个打开用户下载的应用程序的按钮。由于之前的问题,我得到了一些工作代码(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 “
答
您需要的URL方案添加到应用程序的Info.plist
从Apple Developer Documentation对于canOpenURL(_:)
:
重要
如果您的应用程序在iOS 9.0或链接后,您必须声明 要传递给此方法的URL方案。通过将
LSApplicationQueriesSchemes
键添加到您的应用的Info.plist
文件中来实现此目的。如果 为未使用该键声明的方案调用此方法,则无论是否安装了适当的应用程序,此方法 始终返回false。 要了解有关密钥的更多信息,请参阅LSApplicationQueriesSchemes。
所以Info.plist
创建一个新的Array
与关键LSApplicationQueriesSchemes
与价值mspbi
添加项目。
答
您有以下行添加到您的应用程序的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>
我想问一个跟进!所以我现在可以正确地使用这个按钮在我的iPad上打开Power BI应用程序......这让我非常兴奋。不过,我很乐意再进一步。我想根据用户在应用中导航的位置来更改URI/URL。例如,如果用户位于我的应用的第1页,我希望该按钮将他们引导至Power BI的登录页面。如果用户在我的应用的第2页,我希望按钮将他们引导到Power BI的项目页面。思考? – Davis