【发布时间】:2013-08-09 18:46:08
【问题描述】:
Instagram 有一些很酷的钩子,可用于从 Web url 打开应用程序。
例如instagram://相机
但是当用户没有安装 instagram 时,浏览器不知道如何处理 url。有没有办法让我检测用户是否安装了 instagram(在 javascript 中)?
【问题讨论】:
标签: javascript iphone ios instagram
Instagram 有一些很酷的钩子,可用于从 Web url 打开应用程序。
例如instagram://相机
但是当用户没有安装 instagram 时,浏览器不知道如何处理 url。有没有办法让我检测用户是否安装了 instagram(在 javascript 中)?
【问题讨论】:
标签: javascript iphone ios instagram
在 Objective-C 中,[[UIApplication sharedApplication] canOpenURL:url] 表达式可用于检测 URL 是否由系统中的任何应用程序处理。如果你使用 PhoneGap 或一些类似的框架,那么寻找这个方法。如果你只有一个 webapp,那么我很确定这是不可能的。
网络应用程序的问题在于它像网页一样被沙盒化,无法到达浏览器之外。但是,您似乎可以使用基于时间的方法检测存在。也就是说,如果未安装应用程序,用户将在一定的相对较短的时间内返回或根本无法离开浏览器。沿着这些思路思考,我找到了这个解决方案:Check if URL scheme is supported in javascript
您也许可以使用这种方法构建解决方案,但“无法打开页面”警告框总是会出现在您的用户面前。不过,如果您在 Web 应用程序端正确处理它,这个恕我直言并不是很烦人。
【讨论】:
UIApplication 有一个方法canOpenURL: 可以用来检查。
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"instagram://camera"]]) {
}
【讨论】: