Javascript 在ionic framework中打开外部网页并在重定向到特定url时关闭它
我正在尝试创建一个简单的移动应用程序,其中用户将在django服务器上使用oauth登录。用户将首先尝试执行一项操作,如果用户未通过身份验证,服务器将发送一个错误,根据错误情况,用户将显示一个带有facebook、twitter和google按钮的模式。此按钮将用户引导到服务器,然后从服务器转到facebook、twitter或google登录页面,用户登录。我实现了完整的流程,但是在完成登录后,我无法关闭我打开的页面Javascript 在ionic framework中打开外部网页并在重定向到特定url时关闭它,javascript,angularjs,cordova,hybrid-mobile-app,ionic-framework,Javascript,Angularjs,Cordova,Hybrid Mobile App,Ionic Framework,我正在尝试创建一个简单的移动应用程序,其中用户将在django服务器上使用oauth登录。用户将首先尝试执行一项操作,如果用户未通过身份验证,服务器将发送一个错误,根据错误情况,用户将显示一个带有facebook、twitter和google按钮的模式。此按钮将用户引导到服务器,然后从服务器转到facebook、twitter或google登录页面,用户登录。我实现了完整的流程,但是在完成登录后,我无法关闭我打开的页面 $scope.twitterLogin = function() {
$scope.twitterLogin = function() {
var loginUrl = $scope.twitterLink;
var socialLoginWindow = window.open(loginUrl, '_blank', 'location=no,toolbar=yes');
socialLoginWindow.addEventListener('loadstart', function (event) {
var url = event.url,
params = {},
// get uri
parts = url.split('?'),
uri,
urlParams,
loading;
console.log(url);
alert(url);
// if there is an uri
if (parts[1]) {
uri = parts[1];
// get uri params
urlParams = uri.split('&');
// get uri params and store them with key, value
angular.forEach(urlParams, function (paramString) {
var param = paramString.split('=');
params[param[0]] = param[1];
});
}
// if there is an email param or an error -> close the window
if (params.email || params.error) {
socialLoginWindow.close();
}
});
};
(事件侦听器也不工作)问题发生后,我开始了一个新项目,其中只有一个按钮,然后在ng上单击该按钮。我调用了下面的函数
$scope.outofwrld = function() {
try {
alert("1");
var loginUrl = "http://www.google.com/"
window.open(loginUrl, '_self', 'location=no,toolbar=yes');
alert("2")
} catch (err) {
alert(err);
}
}
但现在警报工作正常,但我看不到窗口。我假设窗口是在后台打开的,如果是这样的话,我如何将它带到前台并关闭它。
另外,我正在使用cordova inappbrowser插件您是否仍面临此问题@Sar009?@V31不,现在已修复。在添加android平台后,我安装了AppBrowser插件。但当我添加InApp浏览器,然后添加android平台时,问题就解决了。我甚至试图删除安卓平台,然后又添加了安卓平台,但没用。无论如何,问题现在已经解决了,但我不知道问题的确切原因。InApp browser是Windows的解决方案。open将创建一个与应用程序窗口无关的新窗口…InApp browser将打开一个子窗口,并让侦听器处理开始-停止事件我也有相同的问题,但使用的是ionic浏览器平台。尝试重新开始并首先添加cordova插件,但404仍然失败。eventListener()未捕获回调。