Я пытаюсь добавить Universal Linking в приложение Cordova, используя плагин ionic-plugin-deeplinks .
В соответствии с эта проблема Параметры запроса должны сработать
Универсальные ссылки для меня работают правильно, за исключением ссылок с параметрами запроса .
Например. https://my -site.com /? Olddeeplinking = resetpassword & token = 123
Когда я нажимаю на ссылку в сообщении электронной почты, поле queryString имеет значение всегда пустая строка .
Я что-то упустил, нужно ли включать плагины для определения параметров запроса?
Вот код, который я использую:
const deepLinkRoutes = {
'/user/login': {
action: 'showLogin',
resetUrl: '/',
},
'/user/forgot-password': {
action: 'showForgotPassword',
resetUrl: '/',
},
...
};
export const _getIonicRoutes = () => Object.keys(deepLinkRoutes)
.reduce((links, route) => {
links[route] = { target: '', parent: '' };
return links;
}, {});
export const handleUniversalLinks = () => {
const ionicRoutes = _getIonicRoutes();
const sy = obj => JSON.stringify(obj);
const matchFn = ({ $link, $route, $args }) => {
console.log('Successfully matched route', $link, $route, $args);
alert(`Successfully matched route: ${sy($link)}, ${sy($route)}, ${sy($args)}`);
return history.push($link.path);
};
const noMatchFn = ({ $link, $route, $args }) => {
console.log('NOT Successfully matched route', $link, $route, $args);
alert(`NOT Successfully matched route: ${sy($link)}, ${sy($route)}, ${sy($args)}`);
return history.push($link.path);
};
window.IonicDeeplink.route(ionicRoutes, matchFn, noMatchFn);
};
ОБНОВЛЕНИЕ: похоже, что намерение, полученное на Android, всегда / user / login, даже если у Universal Link его нет. Что может быть причиной этого?
2019-10-21 17:22:47.107 30389-30389/? D/MessageViewGestureDetector: HitTestResult type=7, extra=https://nj.us.gpd.my_company-dev.com/user/login
2019-10-21 17:22:47.139 1128-1183/? I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=https://nj.us.gpd.williamhill-dev.com/... cmp=us.my_company.nj.sports.gpd/.MainActivity} from uid 10147