【问题标题】:How to get data from Cordova's in-App Browser如何从 Cordova 的应用内浏览器获取数据
【发布时间】:2019-09-05 16:43:34
【问题描述】:

我正在为 Ionic 4 应用程序进行身份验证。我正在使用应用内浏览器插件登录。成功登录后,访问令牌将发送回客户端。我不知道如何从应用内浏览器获取令牌到应用程序。

【问题讨论】:

    标签: ionic-framework cordova-plugins ionic4 ionic-native


    【解决方案1】:

    您可以使用事件侦听器,例如:

    this.browser.on('loadstart').subscribe(event => { this.checkForToken(event); })
    

    在哪里 checkForToken 可以查看您的“event.url”并解析要存储到 localStorage 的令牌或在应用内浏览器关闭后用于登录的其他方法。

    【讨论】:

    • 您尝试过您的解决方案吗?因为当 inappbrowser 开始加载时会触发 loadstart 事件..
    • 嗯,端到端,整个代码还有更多内容,你会问如何获取令牌,这就是它的完成方式。我在应用程序浏览器中使用了 oauth,它在生产中工作,我想注意使用了电容器和离子 4。
    • 非常感谢您将我推向正确的方向。我还发现我可以使用 executeScript 方法运行 JS 代码。结合 on('loadstop') 和 executeScript 对我有帮助。
    【解决方案2】:

    使用事件来监听加载开始和停止是一个很棒的主意。然而,我面临另一个问题。谷歌不允许使用应用内浏览器登录,我真的需要它。在四处询问并查看了类似的过去问题后,我发现了一个名为 BrowserTab 的 Cordova 插件。这太棒了,因为它是来自 chrome 的实例/自定义选项卡,所以它在谷歌登录时运行良好。另一个问题出现了。您不能将 Javascript 注入 BrowserTab 并且一旦完成就无法以编程方式关闭它。我环顾四周,这时我想到了 Deeplinks。我使用了Deeplinks plugin 并将我的访问令牌作为参数传递。当用户登录时,BrowserTab 使用 URL 中的访问令牌重定向到我的应用程序的自定义 URL 方案链接。现在它完美地工作了。我在某处读到 IOS 正在摆脱自定义 URL 方案链接。幸运的是,它仍然支持通用应用链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2015-06-29
      • 1970-01-01
      • 2011-09-03
      相关资源
      最近更新 更多