离子2如何使InappBrowser和其他插件在浏览器中运行时工作



我正在在离子2中创建一个应用程序,从现有站点中消耗Web API。要使用此API,我必须通过以下方式进行操作(类似于Facebook登录):

  • 我在InappBrowser组件中调用API登录页面,发送适当的键和返回URL。
  • 用户在显示的表单中键入登录和密码,API将验证并验证它。
  • API调用返回URL传递授权令牌。
  • i"劫持"此重定向到InappBrowser" LoadStart"事件中的返回URL,然后提取和存储授权令牌。
  • 在以下电话中,我在标题中发送授权令牌。

这在模拟器中都可以正常工作,但是它在浏览器中不起作用(带有离子服务),因为当我调用InappBrowser时,它实际上调用window.poin.open,并且事件不起作用。我无法检测到打开窗口中所做的重定向动作。

我想在浏览器中进行此项工作,因为它最好在此处调试应用程序。我的第一个想法是将" http://localhost:8001"发送为返回URL,但我找不到一种方法来捕获Ionic应用程序中的令牌参数。

有人知道我如何捕获此参数或其他任何使此登录工作在浏览器中工作的方法吗?它仅用于开发和调试目的,因此严格的安全不是问题(我可以在生产版本中评论任何不安全的代码)。


编辑:海顿·布拉克斯顿(Hayden Braxton)的答案无法解决我的问题,但是由于这是因为对我的应用程序的某些内容,它确实可以帮助想要使插件工作的人,所以我将其保留为选定的答案。

除此之外,如果可以帮助任何人,我将分享我发现的解决方案。实际上很简单:

  • 我通过" http://localhost:8001"作为API return_uri参数
  • API将在检查登录和密码后,重定向到http://localhost:8001?token = my_auth_token。
  • 这将重新加载应用程序并再次致电登录页面。
  • 在登录页面中,我致电this.platform.getQueryParam("token");获取令牌。

add

"browser": "ionic-app-scripts serve --iscordovaserve --sourceMap source-map  --wwwDir platforms/browser/www/ --buildDir platforms/browser/www/build",

到您的软件包的脚本部分。然后,而不是进行离子服务,而是运行

npm run browser

我们使用离子2来开发我工作的应用程序,这是我们经过一些研究后发现的。

在使用此操作之前,您需要添加浏览器平台。您可以通过以下内容完成此操作:

ionic add platform browser

如果已经添加了浏览器平台,请从您的平台目录中删除浏览器目录,然后运行add Platform命令,只是在安全的一边。

最新更新