ios url从邮件重定向到应用程序

2023-11-24

是否可以使用通过邮件发送的 URL 来启动我的应用程序?例如,我有用户个人资料,用户想要邀请他们的朋友进入应用程序。他们发送一封电子邮件,其中包含一些网址,例如:

通过此链接加入我:http://appname?sender_id=25&some_other_value=something

从 iPhone 打开该链接会将用户带入应用程序并让我解析这些值。

那可能吗?


是的,这是完全可能的。 您需要为您的应用程序注册一个 URL 方案。

在 Xcode 中选择您的应用程序项目,然后单击目标,并从“信息”选项卡中注册一个新的 URL 方案。

标识符是您的应用程序标识符,如 com.company.AppName,URL 方案是您希望使用的名称,如 appName

现在至于理想的解决方案,由于我们现在将其添加到我们的应用程序中,因此您最好不要使用自定义方案在电子邮件中发送链接。 原因是用户可能从计算机上打开它,因此此链接将不起作用。

最好的场景如下:

  1. 当您的应用程序首次运行时,从应用程序内打开 Safari 浏览器并将其发送到您的网站。
  2. 在网站中,安装 Safari 的 cookie(如 myAppIsInstalled)
  3. 在同一个网站中,只需使用自定义 URL 方案将用户重定向到您的应用程序,即可将用户踢回您的应用程序,例如appname://

现在,您在电子邮件中发送带有链接到您网站的普通 URL 的链接 第二部分来了:

  1. 在您的网站中检查您的应用程序是否已安装(存在 cookie)
  2. 如果存在,则不要从您的网站打开链接,而是使用正确的值将用户重定向到您的应用程序,例如

    appname://邮箱?sender_is=123&user_name=Lefteris

这可确保您的电子邮件链接始终有效,并且仅当您的应用程序已安装在设备上时,您才能从 Mobile Safari 打开链接...

最后,请注意,URL 方案是appname://并不是http://appname

现在为了更好地解释第 1 部分,在我们的 AppDelegate 中,我们可以在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions代表:

//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>

我们使用 cookie 的原因是当用户打开电子邮件链接时使用此 cookie。我们将检查浏览器是否为 mobile safari 并且是否安装了 cookie。 这样,我们就知道用户已经安装了我们的应用程序,并且重定向将正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ios url从邮件重定向到应用程序 的相关文章

  • 是否可以对 UILabel 的文本颜色变化进行动画处理? [复制]

    这个问题在这里已经有答案了 UIView animateWithDuration 5 animations myLabel textColor UIColor redColor 标签文本颜色立即改变 Try this UIView tran
  • WKWebView在后台,几个奇怪的断言

    我想找出iOS中当前浏览器的userAgent 所以在 Xcode 创建的默认项目中我添加了 import ViewController h import
  • Objective C 宏附加到字符串

    我认为这是一件非常简单的事情 但由于我是 iOS 开发和 Objective C 的新手 所以我无法弄清楚 define RESTFUL PATH PREFIX https gogch com gch restful define LOGI
  • 在两个可移动 uiview 之间画线

    我有一个带有节点的 滚动视图 UIViews 可以拖动 我正在尝试在选定的之间绘制边缘UIViews使用 calayer 但我不知道当视图位置发生变化时如何重新绘制线条 In my viewControllerI 类在节点数组中添加第一个和
  • 如何让位置音频在 SceneKit 中工作?

    我在使位置音频在 SceneKit 中工作时遇到问题 从 Xcode 生成的 SceneKit 游戏模板开始 我将以下代码添加到handleTap 方法的末尾 let ship scnView scene rootNode childNod
  • 使用基于 Cookie 的身份验证的 Capacitor iOS

    我正在使用 Capacitor v3 NextJS 静态导出和 Django 后端基于生产网站构建 iOS 应用程序 当前的后端身份验证方案通过 cookie 使用 Django 会话 并通过 cookie 设置 CSRF 令牌 应用程序可
  • 双击并滑动/拖动手指以放大/缩小

    如果有人使用过 iOS 版谷歌地图应用程序 那么它有一个很棒的功能 可以用一根手指放大 缩小 双击 uiscrollview 然后立即向上或向下滑动手指以放大 缩小 有谁知道这是如何实现的 谷歌发布了任何片段吗 我将此功能添加到我的 UIS
  • 视频中的图像/文本叠加 swift

    我正在使用 swift 在视频中使用图像叠加来实现水印效果 我正在使用AVFoundation为此 但不知何故我没有成功 以下是我的覆盖图像 文本的代码 let path NSBundle mainBundle pathForResourc
  • 带有图像的 UITableView 滚动非常慢[重复]

    这个问题在这里已经有答案了 可能的重复 带图像的表格视图 加载和滚动缓慢 https stackoverflow com questions 4071497 table view with images slow load and scro
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • Xcode 服务器 ibtool 构建失败

    我一直在研究使用 Xcode Server 进行 CI 我已经解决了一些问题 但现在有一个问题困扰着我 构建似乎工作正常 但在测试阶段挂起 并在日志底部生成以下内容 2015 11 25 14 44 45 650 xcodebuild 58
  • admob ios7错误音频框架

    我正在将 admob SDK 当前的 集成到我的上一个应用程序 IOS7 Xcode5 中 并且出现了一个新错误 在新项目上也是如此 我想我错过了一些东西 但我多次重新启动该过程 但错误仍然存 在 Undefined symbols for
  • 在后台继续下载

    我正在创建一个应用程序 其中我从服务器下载一些数据 在后台运行时 我希望连接继续运行 以便可以下载数据 我知道有方法应用程序委托 void applicationDidEnterBackground UIApplication applic
  • iOS Twitter NSURLErrorDomain 代码=-1012

    我正在尝试通过在我的应用程序中注册 Twitter 来获取用户的联系方式 我发现this https github com malcommac DMTwitterOAuthgithub上的项目看起来非常好 我只遇到一个问题 如果我使用来自
  • 在 Swift 中,如何为具有自动布局的 UIView 制作动画,就像页面滑入一样?

    我尝试创建一个 UIView 来表示一个大小与设备屏幕相同的页面 由于该应用程序支持方向 因此我使用 AutoLayout 来构建它 它工作正常 直到我尝试将页面动画化以从右侧滑入 经过一番研究后 我能想到的最好的办法是 myView UI
  • 如何使用固定宽度和自动布局正确缩放图像?

    我有一个动态 UIImage 和一个固定宽度为 280 0px 的 UIImageView 并且我正在使用自动布局 在 UIImage 视图上 我设置了宽度和高度约束 并降低了高度约束的优先级 我选择了 aspect fit 并将内容拥抱和
  • 如何在多个视图中显示相同的导航栏?

    我可以为一个视图重现以下导航栏 但是 一旦我单击按钮后移至下一个视图 我就会丢失最右边的两个图标 搜索 个人资料 据我所知 从故事板设置导航项目通常是按视图进行的 我可以为每个视图复制这些项目 但我想知道是否有更好的方法来完成一次 是否有教
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代
  • 如何从地址簿中获取一个人的电话号码?

    我想做的就是让用户从地址簿中选择一个号码 我在这个问题中找到了代码 如何从地址簿联系人获取电话号码 iphone sdk https stackoverflow com questions 286207 how to get a phone
  • 构建 iOS 应用程序后退出代码 1 错误

    我正在尝试使用 RestKit 构建我的项目 当我构建它时 我收到以下错误 我尝试使用 Apple LLVM 3 0 和 LLVM GCC 4 2 进行编译 两者都产生相同的结果 任何人有任何想法是什么导致了这个问题 Ld Users Ji

随机推荐

  • 如何使用 CAKeyframeAnimation 对 CoreGraphics 形状绘制进行动画处理

    我正在尝试在 UIView 子类中对 UIBezierPath 在我的示例中是三角形 的绘制进行动画处理 然而 整个子视图是动画的 而不是形状 我在动画中缺少什么吗 void drawRect CGRect rect CAShapeLaye
  • ASP.NET MVC 3:将应用程序移至虚拟目录中。我必须改变什么?

    我一直在开发 MVC 3 应用程序 我使用的是 VS 2010 的内置 Web 服务器 今天 由于各种原因 我被要求将其移动到虚拟目录中并在 IIS 7 下运行 仍然在我的开发 PC 上 现在它的 URL 是localhost MyVirt
  • 使用 MediaCodec 和 MTK Codec 编码时选择 H264 Profile

    我们有一个 Android 应用程序 可以将视频编码为 H264 在所有以前尝试过的 Android 设备上 这都会编码为 Baseline 配置文件 这正是我所需要的 在 Lenovo Yoga 10 上 编解码器为 OMX MTK VI
  • 使用 web3 以太坊调用智能合约方法

    尝试使用以太坊解决区块链问题时 我在尝试与已部署的合约交互时遇到了问题 我想要实现的是调用一个方法来显示添加到使用 Geth 本地部署的私有区块链中的信息 我无法从我的智能合约中调用任何函数 我一直想知道我是否做错了什么 有人可以告诉我如何
  • 如何使用 Perl 对 PDF 文件进行全文搜索?

    我有一堆 PDF 文件 我的 Perl 程序需要对它们进行全文搜索以返回哪些文件包含特定字符串 迄今为止我一直在使用这个 my search results grep i l string pdf 其中 string 是要查找的文本 然而
  • jquery:两个数字的百分比

    EDITED 感谢所有提供支持的人 我将与您分享最好的工作脚本 希望可以帮助正在寻找相同解决方案的其他人 document ready function price1 price2 keyup function var priceOne p
  • XML 属性与 XML 元素

    在工作中 我们被要求创建 XML 文件以将数据传递到另一个离线应用程序 然后该应用程序将创建第二个 XML 文件来传回 以便更新我们的一些数据 在此过程中 我们一直在与其他应用程序的团队讨论 XML 文件的结构 我想出的示例基本上是这样的
  • Ruby 中的“Monkey Patching”究竟意味着什么?

    根据维基百科 一个猴子补丁 is 延长或修改运行时的方法 动态语言代码 不改变原始来源 代码 同一条目中的以下陈述让我感到困惑 在 Ruby 中 术语 猴子补丁 是 被误解为任何动态 对类的修改通常是 用作动态的同义词 在运行时修改任何类
  • 列出 CSS 自定义属性(CSS 变量)

    我在样式表中设置了一些 CSS 自定义属性 root bc fff bc primary eee bc secondary ddd 如果我已经知道 CSS 变量的名称 我可以单独检索它们 如下所示 console log getComput
  • 如何使用javascript读取epub文件

    如何使用javascript读取epub文件 我尝试了 epubjs 但这不适合我的要求 还有其他可用的替代 JavaScript 库吗 Readium 基金会刚刚发布了 Readium Web Components 请参阅http rea
  • Django 升级 1.9 -> 1.10 出现“RemovedInDjango110Warning”导入错误

    简单之后pip install U django我收到以下错误 Environment Request Method GET Request URL http localhost 8000 shelf Django Version 1 10
  • 捆绑 .NET dll 以在无 .NET 的计算机中运行应用程序?

    AFAIK ngen将 MSIL 转换为本机代码 也称为 pre JIT 但我从未过多关注它对启动性能的影响 男士应用程序仍然需要 NET基类库 运行时 由于基类库拥有我们的 NET 程序集所需的一切 正确吗 是否可以将框架的 DLL 与我
  • 从 Laravel 中的多选表单中获取选定值

    要生成默认选择项目的下拉列表 请执行以下操作 echo Form select size array L gt Large M gt Medium S gt Small S 因此 我生成了一个默认选择多个项目的下拉列表 方法如下 echo
  • 如何使用 IMAP 和 php 将邮件附件下载到特定文件夹

    我正在开发一个网站 用户可以在其中邮寄票证并将任何类型的文件附加到特定的邮件 ID 我需要将邮件主题 内容和附件添加到数据库中 我正在使用 cron 来执行此操作 除了附件之外 一切都很完美 我看过一些创建下载链接的帖子 由于我使用的是 c
  • 如何捕获用户离开页面并取消它

    当用户离开 GWT 应用程序时 我想打开一个确认对话框并为他们提供留下的选择 即确认 您确定要离开此页面吗 是 否 我知道如何构建对话框 问题是 如何捕获用户离开页面的事件以及如何取消它 Daniel Call Window addWind
  • StreamingResponseBody 中的异常处理不起作用

    我试图捕获在我的实现中抛出的异常StreamingResponseBody 我可以看到类内部抛出异常 但是我的处理似乎有效 但是我无法获取自定义消息 我的响应代码是200 GetMapping path test produces appl
  • Android AppWidget 在重新启动之前不会显示在蜂窝菜单中

    我已经为 Honeycomb 创建了一个 AppWidget 它运行良好 但首次安装时 它不会显示在 Widgets 菜单中 因此无法将其添加到主屏幕 重新启动设备将使其显示出来 或者在开发过程中 从 Eclipse 发送两次将使其显示出来
  • 保存到用户“我的文档”中的文件夹

    当我为应用程序创建安装程序时 我将在 我的文档 中创建一个文件夹 该文件夹将用于保存应用程序中的文件 我希望我的应用程序在保存文件和打开文件对话框打开时自动提取此目录 现在我的问题是 我需要使用什么字符串才能访问 我的文档 中的文件夹 我知
  • 在 Android Studio 中导入模块

    如何在 Android Studio 中导入外部模块 名为 ViewPagerIndicator 在 Android Studio 3 3 及更低版本中导入模块的步骤 Go to File gt gt New gt gt 导入模块 选择要导
  • ios url从邮件重定向到应用程序

    是否可以使用通过邮件发送的 URL 来启动我的应用程序 例如 我有用户个人资料 用户想要邀请他们的朋友进入应用程序 他们发送一封电子邮件 其中包含一些网址 例如 通过此链接加入我 http appname sender id 25 some