#android #nginx #redirect
#Android #nginx #перенаправление
Вопрос:
У меня есть приложение для Android. пытаюсь работать с глубокой ссылкой с множественным перенаправлением.
1-й. Перенаправление — когда я открываю этот URL ( https://www.tiny.com/op/abRh4
) , Nginx перенаправляет этот URL на http://customdomain.com/internal
2-е перенаправление — этот Url ( http://customdomain.com/internal/abRh4
) автоматически (с помощью API) перенаправит на https://customdomain.com?screen-no=25amp;notification=show
(длинный URL)
Я, наконец, хочу открыть глубокую связь с. https://customdomain.com?screen-no=25amp;notification=show
но Android открывает его с помощью http://customdomain.com/internal/abRh4
Кто-нибудь предлагает, как обрабатывать множественные перенаправления с помощью глубокой ссылки (можем ли мы обработать это множественное перенаправление в одно с помощью конфигурации nginx)?
это два разных сервера (1-й сервер -> перенаправление Nginx, 2-й сервер -> Откуда поступает api)
Конфигурация nginx
server {
listen 443 ssl http2;
server_name www.tiny.com;
location /op {
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://customdomain.com/internal;
}
}
//this api will hit when we call http://customdomain.com/internal/abRh4
@GET
@Path("/{shortKey}")
@Produces({MediaType.TEXT_HTML})
public Response resolveShortUrl(@PathParam("shortKey") String shortUrlKey) {
UrlShortenerLogicHelper helper = new UrlShortenerLogicHelper();
try {
helper.openConnection();
URI url = new URI(helper.resolveShortUrl(shortUrlKey));
// return url like https://customdomain.com?screen-no=25amp;notification=show
return Response.temporaryRedirect(url).build();
} catch(Exception e){}
}
Комментарии:
1. покажите некоторый код, как вы в настоящее время реализуете глубокую компоновку, а также
WebView
инициализацию. если первое перенаправление работает, почему второе не должно…2. @snachmsm добавьте немного кода. может быть, это поможет
Ответ №1:
Вы можете добавить несколько тегов данных с помощью фильтра намерений вашей активности
<data android:host="www.test.com"
android:pathPrefix="/op/abRh4"
android:scheme="https" />
<data android:host="www.myOwnSite.com"
android:pathPrefix="/shorturl/abRh4"
android:scheme="https" />
Комментарии:
1. спасибо за ответ. Извините, но я меняю доменное имя для более четкого объяснения. не могли бы вы помочь с этим. Я также добавляю некоторый код, чтобы понять