在我的Ionic应用程序中,我需要在新的浏览器窗口中打开第三方服务的登录页面。登录成功后,第三方登录页面将触发重定向请求,其中包含我需要捕获的参数。获得参数后,我需要有效地取消 URL 加载请求。
我有一个本机iOS实现,它在Web视图中打开第三方登录页面,然后使用Web视图的shouldStartLoadWithRequest:requestNaviationType:方法来捕获请求并解析参数。根据解析的结果,它要么加载 URL,要么取消请求。
Cordova InAppBrowser函数将允许我在新窗口中打开URL,并允许我侦听loadstart事件。但是如何防止加载重定向 URL?
inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
function loadStartCallBack() {
if ( cancelConditionMet ) {
inAppBrowserRef.close();
inAppBrowserRef = undefined;
}
}
inAppBrowserRef.close();
inAppBrowserRef = undefined;
以上并不妨碍打开 URL 方案。如果网页重定向到 URL 方案,我们如何阻止。