gpt4 book ai didi

ios - Cordova 深层链接 - 未从通用链接中检测到查询参数

转载 作者:行者123 更新时间:2023-11-29 05:22:53 26 4
gpt4 key购买 nike

我正在尝试使用 ionic-plugin-deeplinks 将通用链接添加到 Cordova 应用程序插件。

根据this issue查询参数应该开箱即用。

我的通用链接可以正常工作,但带有查询参数的链接除外

例如。 https://my-site.com/?olddeeplinking=resetpassword&token=123


当我单击电子邮件中的链接时,queryString 字段始终为空字符串

enter image description here

我是否遗漏了什么,我需要启用插件来检测查询参数吗?

这是我正在使用的代码:

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,即使通用链接没有它。可能是什么原因造成的?

2019-10-21 17:22:47.107 30389-30389/? D/MessageViewGestureDetector:HitTestResult 类型=7,额外=https://nj.us.gpd.my_company-dev.com/user/login
2019-10-21 17:22:47.139 1128-1183/? I/ActivityManager:开始 u0 {act=android.intent.action.VIEW dat=https://nj.us.gpd.williamhill-dev.com/... cmp=us.my_company.nj.sports.gpd/。 MainActivity} 来自 uid 10147

最佳答案

线索:

看起来deeplinks插件正在使用window.location.href来检测查询参数。

因为我正在使用 cordova-plugin-ionic-webview href 始终是为应用程序内容提供服务的 Ionic 引擎的本地主机使用的别名,因此永远找不到查询参数。

Deeplinks 插件代码:

https://github.com/ionic-team/ionic-plugin-deeplinks/blob/master/src/browser/DeeplinkProxy.js#L40

function locationToData(l) {
return {
url: l.href,
path: l.pathname,
host: l.hostname,
fragment: l.hash,
scheme: parseSchemeFromUrl(l.href),
queryString: parseQueryStringFromUrl(l.href)
}
}

onDeepLink: function(callback) {
// Try the first deeplink route
setTimeout(function() {
callback && callback(locationToData(window.location), {
keepCallback: true
});
})
// ...
}

这就是问题所在,但还不确定解决方案。

关于ios - Cordova 深层链接 - 未从通用链接中检测到查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58492718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com