Пользовательская схема URL не является ссылкой в ​​Outlook (iOS / Android) - PullRequest
0 голосов
/ 07 мая 2018

Наше приложение можно запустить с пользовательской схемой URL, например myapp://mainpage?param=123. Это работает, когда он включен в качестве ссылки на веб-странице. И на iOS это работает в почтовом клиенте, который идет с платформой.

После того, как пользователь зарегистрировался и установил приложение, он получает письмо со ссылкой. Нам это нужно, потому что мы хотим передать некоторые данные в приложение.

Однако это не работает в приложении Microsoft Outlook на iOS.

На Android, в качестве альтернативы, наше приложение также поддерживает https URL Scheme, например https://myapp/mainpage?param=123

Кто-нибудь знает, как запустить мое приложение из почты в Microsoft Outlook на iOS?

Если не нужно, я предпочитаю не зависеть от стороннего сайта. Универсальные ссылки не будут работать, потому что приложение работает вместе с сайтом, который находится на отдельном 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 голосов
/ 09 мая 2018

В электронной почте мы можем скрывать содержимое в зависимости от почтового клиента.

Если вы добавите это в таблицу стилей:

<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 Медиа-запрос говорит всем клиентам веб-набора (Apple Mail, IOS) скрыть Android и отобразить ссылку веб-набора.

<!--[if (gte mso 9)|(IE)]> создает специальную таблицу стилей, чтобы скрыть классы .android и .webkit из Outlook.

В теле письма сделайте следующее:

<!--[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]><!--> скрывает URL-адреса Apple и других устройств от Outlook, поэтому они не отображаются в Outlook в вашей электронной почте.

<!--[if mso | IE]> скрывает URL-адреса только для Outlook от клиентов, не являющихся клиентами Outlook.

.webkit класс скрывает ссылку Apple / IOS от других клиентов.

.android скрывает URL, который работает для других клиентов из Outlook.

Таким образом, вы можете настроить таргетинг на Outlook, Apple и работать со всеми остальными почтовыми клиентами без путаницы с конечным пользователем.

Удачи.

0 голосов
/ 07 мая 2018

iOS тоже поддерживает универсальные ссылки. Таким образом, вместо использования пользовательской схемы реализуйте Универсальную ссылку и в iOS.

Это старый репозиторий, но может быть полезным github.com/Satish/iOS-Universal-Links

Вам необходимо разместить apple-app-site-association в домене http://your -site.com / (т. Е. http://your -site.com / apple-app-site- ассоциация ).

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

Вы можете разместить этот файл в одном домене и отправить URL-адрес с тем же доменом http://your-site.com и отправить идентификатор в качестве параметра, чтобы идентифицировать вашу компанию и принять меры в коде вашего приложения.

...