我正在使用Ionic 2构建移动版Web应用程序,该应用程序使用SAML进行客户端服务器上运行的SSO。现在我们有一个api,当你没有登录到重定向到他们的服务器进行SSO的网站时被调用,然后在你登录时返回我们的服务器。然后,浏览器有cookie来存储用户登录的
我需要拿那个cookie然后把它拿到我的Ionic应用程序中。我知道您无法将InAppBrowser中的cookie共享回应用程序,但必须有一些方法可以将其恢复。足够的应用程序使用Twitter,Facebook等,我认为有一些我想念的简单。
答案 0 :(得分:2)
是的,由于域策略,这是非常困难的,而inAppBrowser是一个新的实例,不允许以前的Web视图访问它。
然而,有一种方法可以使用InAppBrowser的executeScript()
方法,让您在打开的窗口中执行JavaScript。
var win = window.open( "http://icenium.com", "_blank", "EnableViewPortScale=yes" );
win.addEventListener( "loadstop", function() {
win.executeScript({ code: "alert( 'hello' );" });
});
您甚至可以提供回调来检索已打开的值 窗口
var win = window.open( "http://icenium.com", "_blank", "EnableViewPortScale=yes" );
win.addEventListener( "loadstop", function() {
win.executeScript(
{ code: "document.body.innerHTML" },
function( values ) {
alert( values[ 0 ] );
}
);
});
然后您可以使用返回的值将其保存在local storage