首页 文章

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

提问于
浏览
0

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

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

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

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

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

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

这是我在 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

    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 的URL,并将标识符作为参数发送,以识别您的业务并在您的应用代码中执行操作 .

  • 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 class隐藏其他客户端的Apple / IOS链接 .

    .android 隐藏了适用于Outlook中其他客户端的URL .

    这样,您可以定位Outlook,Apple并适用于所有其他电子邮件客户端,而不会与最终用户混淆 .

    祝好运 .

相关问题