如何检测iOS应用内浏览器中的链接是否会启动App Store?

时间:2014-02-20 07:19:39

标签: ios iphone nsurl nsurlrequest url-scheme

我正在构建一个拥有应用内网络浏览器的iOS应用。

Tweetbot包含的一项功能是能够检测链接是否会在打开时退出Tweetbot。以下是点击App Store链接时所发生情况的屏幕截图:

enter image description here

如何通过打开链接来检测应用程序是否即将关闭?

更新:我认为这个问题不够明确:我知道UIWebViewDelegate方法和[[UIApplication sharedApplication] openURL:url]位。

我想弄清楚的不是如何打开网址如何知道网页视图是否正在打开网址 - 它是关于如何评估网址以确定是否会在不先打开网址的情况下离开应用程序?

我在关注itms://个网址吗?是否有一种干净而简单的方法来了解给定的网址是否会退出应用程序而不仅仅是itms://个网址?

2 个答案:

答案 0 :(得分:1)

我无法准确知道其他应用正在做什么,但最有可能实施UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:

检查类型是否为UIWebViewNavigationTypeLinkClicked,然后检查URL的{​​{1}}。如果URL方案是自定义方案,则将启动另一个应用程序。

答案 1 :(得分:0)

除了@rmaddy:

在UIWebView中,您只能检测和拦截链接webView:shouldStartLoadingWithRequest:navigaitonType:并检查navigationType是否为UIWebViewNavigationTypeLinkClicked,正如@rmaddy所说。

您可能会想到并寻求找到的是这个,但它不会拦截UIWebView中的链接: //在你的代码中:

[[UIApplication sharedApplication] openURL:myURL];

//在您的App Delegate中:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
{
    // Intercept links from openURL and links from other components like UITextView - present custom alert and on the alert delegate either cancel or redirect to the link
}