Iphone ios url从邮件重定向到应用程序
是否可以使用通过邮件发送的URL以某种方式启动我的应用程序?例如,我有一个用户配置文件,用户希望邀请他们的朋友加入应用程序。他们发送的电子邮件包含一些url,如: 通过此链接加入我:Iphone ios url从邮件重定向到应用程序,iphone,ios,objective-c,Iphone,Ios,Objective C,是否可以使用通过邮件发送的URL以某种方式启动我的应用程序?例如,我有一个用户配置文件,用户希望邀请他们的朋友加入应用程序。他们发送的电子邮件包含一些url,如: 通过此链接加入我: http://appname?sender_id=25&some_other_value=something 从iPhone打开该链接会将用户带入应用程序,并让我解析这些值 这可能吗?是的,这完全可能。 你需要为你的应用注册一个URL方案 在Xcode中选择您的应用程序项目,然后单击目标,并从“信息”选项卡中注册一
http://appname?sender_id=25&some_other_value=something
从iPhone打开该链接会将用户带入应用程序,并让我解析这些值
这可能吗?是的,这完全可能。 你需要为你的应用注册一个URL方案 在Xcode中选择您的应用程序项目,然后单击目标,并从“信息”选项卡中注册一个新的URL方案 标识符是您的应用程序标识符com.company.AppName,URL方案是您希望使用的名称,如AppName 现在,对于理想的解决方案,由于我们正在将其添加到我们的应用程序中,理想情况下,您不应该使用自定义方案在电子邮件中发送链接。 原因是用户可能从计算机上打开它,因此此链接将无法工作 最佳方案如下:
appname://
appname://
而不是http://appname
现在,为了更好地解释第1部分,在我们的AppDelegate中,我们可以在-(BOOL)应用程序:(UIApplication*)应用程序完成启动时使用选项:(NSDictionary*)启动选项
委托:
//if user has not set the app installed cookie, set it now.
bool hasAppInstalledCookie = [[NSUserDefaults standardUserDefaults] boolForKey:@"appInstalledCookie"];
if (!hasAppInstalledCookie) {
//mark it was set
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"appInstalledCookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
//open the web browser
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.myApp.com/appInstalled"]];
}
现在在我们的appInsalled页面(例如index.html),我们只需设置一个cookie(我们想要的任何cookie名称),然后将用户踢回我们的应用程序,如下所示:
<script type="text/javascript">
window.location = 'appName://';
</script>
window.location='appName://';
我们之所以使用cookie,是为了在用户打开电子邮件链接时使用此cookie。我们将检查浏览器是否为mobile safari,是否安装了cookie。
这样,我们知道用户已经安装了我们的应用程序,重定向将正常工作。类似的功能将更具可扩展性,并且不需要设置cookie或默认值来处理。上面标记的答案是正确的,可以正常工作。然而,在iOS 9中,苹果引入了一种新的应用程序,它允许你将特定的web域或web链接(路径)与你的应用程序相关联。如果应用已安装,则可以更轻松地重定向到应用;如果应用未安装,则可以更轻松地重定向到网页 请注意,对于仍在运行较旧版本的iOS(iOS 9之前)的设备,您可能仍然需要支持Scheme URI(如果应用程序未像安装一样安装,则可能需要使用url链接)
如果有人感兴趣,我已经记录了我使用通用链接的经验 是的,它叫a。@ceejayoz谢谢,把它作为答案贴出来,我会接受的。@Eugene我也面临着同样的问题。你能告诉我你是怎么解决的吗?我有Lefteris解决方案,但如何从Safari重定向到应用程序?在哪里调用该.html文件?@Goti向用户的电子邮件发送一个自定义URL方案链接,并让他们打开它iPhone@Eugene我是否需要在我的应用程序网站中创建“appInstalled”页面?因为,对于Android来说,它不需要这个东西。@Lefteris:谢谢你的好答案。我没有完全理解第一部分中的第一步。你能详细说明一下吗?我们的想法是想在移动safari浏览器中添加一个cookie。这是为了验证用户是否安装了我们的应用程序。我编辑我的问题是为了解释更多这是一个很好的答案,但我不需要打开url,它会让用户感到困惑,而且对用户不友好。有没有其他方法来储存safari的饼干?没有,没有其他方法,但这是非常快的。这就像fom FB上的单点登录。这是一瞬间,因为cookie页面只有几个字节……当然,你可以跳过cookie设置,只需将所有具有mobile safari的页面重定向到你的应用程序方案。如果他们没有安装你的应用程序,他们会看到一个错误,但是你可以将他们重定向到appstore,然后。。。解决这个问题的方法是Hi-Altaiar,如果对iOS来说很好,那么如何在android上集成相同的场景呢?你能解释一下吗?