【问题标题】:ionic2 get data from system browserionic2 从系统浏览器获取数据
【发布时间】:2016-06-04 10:00:10
【问题描述】:

我正在开发一个需要使用外部链接登录的 Ionic 2 应用程序。出于安全原因,我更愿意在系统浏览器中打开链接。在我打开链接并使用用户名和密码登录后,将在 html 的正文中返回一个令牌。有没有办法将该令牌传递给我的应用程序?或者有没有其他解决方案来解决这个问题?谢谢。

【问题讨论】:

  • 为什么不在 ionic 2 应用程序中使用 ajax 调用在该外部链接中使用 POST 方法发送凭据?然后你会在你的应用程序中收到令牌?
  • 您是否考虑过在登录成功时重定向,将查询字符串中的令牌传递回 url
  • @John 这样我就可以截获所有用户的凭据。我不希望我的用户有这样的担忧。我认为打开外部链接不会有这个安全问题?如果我错了,请纠正我...

标签: android ios mobile browser ionic2


【解决方案1】:

这是非常概念性的,但是您可以使用cordova插件inappbrowser在应用程序内打开浏览器,监听退出事件以等待用户关闭应用程序内浏览器,然后注入脚本从 html 中检索令牌,例如:

inAppBrowserRef = undefined;

showLogin(url) {

    var target = "_blank";

    var options = "location=yes,hidden=yes";

    this.inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);

    with (this.inAppBrowserRef) {
        addEventListener('exit', this.exitCallBack);
    }

}

exitCallBack(params) {

   captureToken = "return token = [[jquery to retrieve the token]]";



    this.inAppBrowserRef.executeScript({ code: captureToken}, this.executeScriptCallBack);

    this.inAppBrowserRef.close();

    this.inAppBrowserRef = undefined;

}

executeScriptCallBack(token) {

this.token=token;


}

【讨论】:

  • 抱歉我的重播迟了。尝试了无数次,当我使用cordova InAppBrowser 时,出现参考错误:找不到变量:cordova。我检查了我的 index.html,我在头中包含了 cordova.js。谢谢!
  • 无论如何,我使用了 window.open(...) 而不是 cordova.InAppBrowser.open(...)。也许还需要事先安装 inappbrowser?我不确定,但我安装了 inappbrowser 插件,window.open() 可以在应用程序中或使用系统浏览器打开页面。此外,如果你想导航回应用程序,请使用这个插件:EddyVerbruggen/Custom-URL-scheme,你可以找到一个漫游here。但是,仍然感谢@Manu 的帮助!
猜你喜欢
  • 2016-03-18
  • 1970-01-01
  • 2019-03-13
  • 2021-01-08
  • 2015-06-29
  • 2011-09-03
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
相关资源
最近更新 更多