自定义URL方案不是Outlook中的链接(iOS / Android)

时间:2018-05-07 09:38:11

标签: android ios mobile outlook mobile-application

我们的应用可以使用myapp://mainpage?param=123等自定义网址方案启动。当它作为网页中的链接包含时,这种方法有效。而且,在iOS上,它适用于平台附带的邮件客户端。

用户注册并安装应用程序后,他会收到一封带有链接的邮件。我们需要这个,因为我们想将一些数据传递到应用程序中。

但是,这在iOS上的Microsoft Outlook应用程序中不起作用。

在Android上,作为解决方法,我们的应用还支持https网址方案,例如https://myapp/mainpage?param=123

有没有人知道如何从iOS上的Microsoft Outlook邮件启动我的应用程序?

如果不需要,我宁愿不依赖第三方网站。通用链接不起作用,因为该应用程序与我们每个商业客户的单独网址上的网站一起使用。

这是我在Info.plist注册计划的部分:

  <key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleURLName</key>
      <string>My App</string>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>myapp</string>
      </array>
    </dict>
  </array>

2 个答案:

答案 0 :(得分:0)

iOS也支持通用链接。 所以,不要在iOS中使用自定义方案实现Universal link

这是一个旧的回购,但可能会有所帮助github.com/Satish/iOS-Universal-Links

您需要在http://your-site.com/域(即http://your-site.com/apple-app-site-association)托管apple-app-site-association。

 {
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "XXXX.nnnn",
                "paths": [
                    "/yourpath"
                ]
            }
        ]
    }
 }

您可以在单个域上托管此文件,并发送包含相同域http://your-site.com的网址,并发送标识符作为参数,以识别您的商家并在您的应用代码中执行操作。

答案 1 :(得分:0)

在电子邮件中,我们可以根据电子邮件客户端隐藏一定程度的内容。

如果将其添加到样式表中:

<style>
  .android {display: block;}
  .webkit {display: none;}

  @media screen and (-webkit-min-device-pixel-ratio:0) {
    .android {display: none;}
    .webkit {display: block !important;}
  }
</style>
<!--[if (gte mso 9)|(IE)]>
 <style type="text/css">
   .android {display: none;}
   .webkit {display: none;}
</style>
<![endif]-->  

这告诉电子邮件客户端它是否是Android或任何电子邮件客户端,显示类.android媒体查询告诉所有webkit客户端(Apple Mail,IOS)隐藏android并显示webkit链接。

<!--[if (gte mso 9)|(IE)]>创建一个特殊样式表,以隐藏Outlook中的.android.webkit类。

在电子邮件正文中,请执行以下操作:

<!--[if mso | IE]>
  Outlook Only: url://that-works-with-outlook
<![endif]-->
<!--[if !mso 9]><!-->
  <span class="android">All Email Clients: https://myapp/mainpage?param=123</span>
  <span class="webkit" style="display: none;">Webkit-only: myapp://mainpage?param=123</span>
<![endif]-->

<!--[if !mso 9]><!-->隐藏了Outlook中的Apple和其他设备网址,因此它们不会在您的电子邮件中显示在Outlook中。

<!--[if mso | IE]>隐藏了非Outlook客户端的仅Outlook网址。

.webkit课程隐藏了其他客户端的Apple / IOS链接。

.android隐藏了适用于Outlook的其他客户端的网址。

通过这种方式,您可以定位Outlook,Apple并适用于所有其他电子邮件客户端,而不会混淆最终用户。

祝你好运。