如何从Cordova应用内浏览器获取数据

时间:2019-04-15 16:32:02

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

使用事件监听加载的开始和停止是一个很棒的主意。但是,我面临另一个问题。 Google不允许使用应用内浏览器登录,我确实需要这样做。询问并查看过去类似的问题后,我遇到了一个名为BrowserTab的Cordova插件。这很棒,因为它是chrome的实例/自定义标签,因此在google登录时效果很好。出现了另一个问题。您无法将Javascript注入BrowserTab,并且一旦完成就无法以编程方式关闭它。我环顾了四周,就在我想到Deeplinks的时候。我使用了Deeplinks plugin并将访问令牌作为参数传递。当用户登录时,BrowserTab重定向到我的应用程序的“自定义URL方案”链接,URL中带有访问令牌。现在,它可以完美运行。我在某处读到IOS摆脱了自定义URL方案链接。幸运的是,它仍然支持通用应用链接