以http无效的自定义URL方案

时间:2013-12-20 09:51:18

标签: ios iphone cookies url-scheme

我在应用程序中使用了自定义URL方案。我成功地从safari重定向到我的应用程序。就像我已经制作了URL方案“appname”。请检查http://prntscr.com/2cjx0p

我需要使用像ios url redirect from mail to app这样的解决方案,但我不确定如何设置Cookie。

我发现我必须先在我的应用中为服务器“http://myappname.com”设置一个Cookie。但是我该怎么做呢?


背景故事:

我可以在safari中输入“appname://”来使用它,然后我被重定向到我的应用程序。

现在,我必须分享这个邮件。并且要求是从邮件打开应用程序。所以,我还将此链接设置为可在电子邮件正文中单击。但是,因为它以“appname://”开头,所以我没有重定向到我的应用程序。这意味着此链接必须以“http://”开头。

然后,我在URL方案中设置了“http”而不是“appname”,并再次共享该文本。所以它会像“http://”。但是,通过键入此内容,它不会将其重定向到我的应用程序。

3 个答案:

答案 0 :(得分:6)

在链接到代码的问题中打开一个链接:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.myApp.com/appInstalled"]];

这会在服务器上的指定页面上打开Safari。该页面唯一的作用是设置一个cookie,然后重定向回您的应用程序(使用自定义URL方案)。这需要由加载的网页完成(所以使用返回的标题和HTML)。

这样做的目的是将cookie存储在Safari中(这是将来需要的地方 - 并且它应该在将来有一个到期日)。我不认为你可以从应用程序(沙盒)中存储Safari中的cookie。

您将看到切换到Safari,但它应该立即切换回您的应用程序。


您应该能够在返回的HTML页面中使用javascript重定向:

<script type="text/javascript">
<!--
    window.location = "gameswap://?d"
//-->
</script>

或HTML(在本节中):

<meta http-equiv="refresh" content="0; url=gameswap://?d" />

答案 1 :(得分:4)

我解决了这个......

我通过包含Test.html页面的实时网址完成了这项工作。在那里,写下脚本..

<script type="text/javascript">
window.location = 'appName://';
</script>

现在,在分享网址时,它就像“http://demo.com/test.php/?d=”。从邮件中,我打开了该链接,它已经被重定向到我的应用程序的特定页面。

我从HERE找到了最大的帮助。

答案 2 :(得分:1)

使用此格式如果您不想使用http。

在您的网址

中设置此项
www.my.app

链接格式以打开应用

www.<characters>.<characters>://<characters>

例如。

www.my.app://open