gpt4 book ai didi

ios - 使用我的应用程序处理 http url(如果已安装)

转载 作者:可可西里 更新时间:2023-11-01 03:57:06 24 4
gpt4 key购买 nike

我想以这种方式处理一个 url:http://www.something.com/product/3/:

  • 如果您安装了该应用程序 => 使用该应用程序进行处理。
  • Else => 使用 safari 处理它。

这可能吗?

我的想法是,我可以通过电子邮件发送该 url,如果接收者安装了该应用程序,则该应用程序会启动并执行某些操作,如果未安装,则只需通过 safari 打开它。

我知道自定义方案,它们在应用程序中运行良好,但它们显然在 Safari 中不起作用,因为它们不是 http 协议(protocol)。

最佳答案

1) 在您的应用中创建自定义 URL 架构。如果您不知道如何创建自定义 URL 方案,请访问以下链接:http://www.idev101.com/code/Objective-C/custom_url_schemes.html

2) 然后将以下脚本添加到您希望您的应用程序打开的 URL。

<script language="javascript" type="text/javascript">
var iOS = (navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false);
var appUrlScheme = "myappscheme://" + document.URL;
if (iOS) {
window.open(appUrlScheme, "_self");
}
</script>

该脚本不言自明,如果它是 iOS 设备,那么它只是尝试使用您的自定义 url 方案打开当前 url,即 myappscheme://whateverurl.com'。如果您的应用程序安装在设备上,那么 iOS 将启动您的应用程序并将此 URL 传递给handleOpenURL函数,否则移动版 safari 将默默地忽略window.open` 调用并且您的网页将正常加载:

3) 在您的 AppDelegate 中实现 handleOpenURL 回调方法来处理 URL:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSLog(@"url: %@", url);
NSLog(@"query string: %@", [url query]);
NSLog(@"host: %@", [url host]);
NSLog(@"url path: %@", [url path]);

//REDIRECT USER TO A VIEW CONTROLLER

return YES;
}

关于ios - 使用我的应用程序处理 http url(如果已安装),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17740477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com