我正在 Ionic 2 中创建一个应用程序,它使用现有网站的 Web API。要使用这个 API,我必须通过以下方式进行身份验证(类似于 Facebook 登录):
这在模拟器中一切正常,但在浏览器中不起作用(使用离子服务),因为当我调用 InAppBrowser 时,它实际上调用 window.open,并且事件不起作用。我无法检测到在打开的窗口中进行的重定向操作。
我想在浏览器中进行此操作,因为最好在浏览器中调试应用程序。我的第一个想法是发送“http://localhost:8001”作为返回 URL,但我找不到在 ionic 应用程序中捕获令牌参数的方法。
有谁知道我如何捕获此参数或任何其他方式使此登录在浏览器中工作?它仅用于开发和调试目的,因此严格的安全性不是问题(我可以在生产版本中注释掉任何不安全的代码)。
编辑:Hayden Braxton 的答案没有解决我的问题,但由于它是因为我的应用程序独有的东西,并且它确实可以帮助那些想要使插件工作的人,所以我将其保留为选定的答案。
除此之外,我将分享我找到的问题解决方案,以防它可以帮助任何人。其实很简单:
this.platform.getQueryParam("token");
来获取令牌。添加
"browser": "ionic-app-scripts serve --iscordovaserve --sourceMap source-map --wwwDir platforms/browser/www/ --buildDir platforms/browser/www/build",
到 package.json 的脚本部分。然后不做离子服务,而是运行
npm run browser
我们在我工作的地方使用 ionic2 来开发应用程序,这是我们经过一番研究后得出的结论。
使用此功能之前,您需要添加浏览器平台。您可以通过以下方式完成此操作:
ionic add platform browser
如果已经添加了浏览器平台,为了安全起见,请从平台目录中删除浏览器目录,然后运行添加平台命令。