Мои настройки:
Шаблон URL-адреса: я использую URL-адрес например /api/app/login/str:session_token/.
URL-адрес мобильного приложения: я хочу перенаправлять пользователей на URL-адрес пользовательской схемы, например myapp://path/to/page/.
Текущее представление: Это мое мнение, что пытается обработать перенаправление:
Код: Выделить всё
from django.http import HttpResponseRedirect
from django.views import View
class MobileRedirectView(View):
def get(self, request, *args, **kwargs):
# Custom mobile app URL (Universal Link for iOS or App Link for Android)
mobile_app_url = "myapp://path/to/page/"
# Redirecting to the mobile app
return HttpResponseRedirect(mobile_app_url)
При попытке перенаправления на URL-адрес мобильного приложения с использованием пользовательской схемы (myapp://) я получаю следующую ошибку:
django.core .Exceptions.DisallowedRedirect: небезопасное перенаправление на URL-адрес с протоколом myapp.
Я знаю, что Django по умолчанию разрешает перенаправление только на URL-адреса http:// или https://, но мне нужно чтобы разрешить пользовательские схемы, такие как myapp://.
Цель: я хочу, чтобы перенаправление происходило без использования браузера (непосредственно в мобильное приложение), а также я хочу использовать универсальные ссылки/ссылки на приложения для iOS и Android соответственно.
Дополнительный контекст:
Я настроил .well-known файлы, чтобы настроить свое приложение для обработки этих ссылок на мобильных устройствах. Хорошо известная конфигурация моих приложений для iOS и Android выглядит следующим образом:
Для iOS (внутри apple-app-site-association):
Код: Выделить всё
{
"applinks": {
"details": [
{
"appID": "TEAM_ID.com.myapp",
"paths": ["/path/to/page/*"]
}
]
}
}
Код: Выделить всё
{
"applinks": {
"details": [
{
"appID": "com.myapp",
"paths": ["/path/to/page/*"]
}
]
}
}
/>Следует ли мне настроить параметры Django, чтобы разрешить перенаправление настраиваемой схемы? Если да, то как?
Нужно ли мне изменить представление Django или использовать JavaScript для запуска перенаправления таким образом, чтобы избежать браузера?
Могу ли я использовать .well-known файлы, чтобы гарантировать, что iOS и Android правильно обрабатывать эти ссылки без каких-либо проблем?
Есть ли лучший подход для достижения этой цели с помощью универсальных ссылок и ссылок на приложения в приложении Django, гарантируя, что пользователь перенаправляется непосредственно в мобильное приложение (а не через браузер)?
Дополнительно Конфигурация:
Есть ли какая-либо специальная конфигурация Nginx или другая серверная конфигурация, которую мне нужно настроить, чтобы разрешить подобные перенаправления на сервере?
Буду очень признателен за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/792 ... -universal
Мобильная версия