【问题标题】:Open link in iOS app from mail从邮件中打开 iOS 应用程序中的链接
【发布时间】:2014-07-03 15:00:55
【问题描述】:

我正在从我的 iOS 应用程序发送电子邮件。消息由服务器组成并发送。该消息包含link。现在我希望当我在来自 iPhone/iPad 的邮件中单击此 link 时,它应该在我的设备上安装的同一个应用程序(通过它发送邮件)中打开。

这可能吗?如果是,我该怎么做?

【问题讨论】:

标签: ios email


【解决方案1】:

是的,有可能

为此,您必须在 info-plist 中设置 url 架构。

在邮件中设置像 urlShemaName:// 这样的链接?[要打开的链接]

在应用委托中实现方法如下

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"%@",[url scheme]);
NSLog(@"%@",[url query]);
return YES;

}

[url query]

this 返回在 ? 之后传递的参数来自自定义网址。通过该方法,您可以在应用内浏览器中打开此链接。

如果你愿意,我可以给你演示代码。

【讨论】:

  • 当然,如果你能做个演示就好了
【解决方案2】:

请从此链接下载演示代码DEMO CODE 在模拟器或设备中运行此代码,然后打开 safari 并输入 moinuddin://?http://www.google.com 结束按 Enter 您将重定向到应用程序并打开谷歌页面

同样的事情将通过邮件完成

【讨论】:

  • 我下载了你的应用程序并按照你的建议做了。但我想要做的是,单击邮件中的一个按钮 - 将调用一个链接(例如 - someApp/register.php)。因此,我不想将其重定向到浏览器中的此链接,而是希望打开应用程序(或应用程序中的特定页面)。我如何通过您在 plist 中提到的 URL Scheme 做到这一点?
  • 在链接中你的按钮就像moinuddin://?url=http://www.google.com&page=moin在委托中你得到[url query]作为字符串分隔字符串和&检查参数,比如如果“page”==1然后转到第1页,否则转到到其他页面
  • 该按钮是从服务器端生成的,我无法将它链接到其他任何东西。它只是重定向说例如。 http://www.google.com&page=moin。我不能在服务器端附加moinuddin://?url=
  • 没有架构标识符是不可能的。服务器必须发送 moinuddin:// 告诉操作系统打开具有模式 id “moinuddin”的应用程序,因此没有模式 id 是不可能的。
  • 好的,知道了。我将不得不更改服务器上的 URL 以检测呼叫是从 iOS 发出的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-08-30
  • 2019-10-14
  • 1970-01-01
  • 2012-07-30
  • 2013-06-09
  • 2017-02-10
  • 2017-06-11
  • 1970-01-01
相关资源
最近更新 更多