【问题标题】:Ionic 2 how to make InAppBrowser and other plugins work when running in a browserIonic 2 如何让 InAppBrowser 和其他插件在浏览器中运行时工作
【发布时间】:2017-03-19 05:17:06
【问题描述】:

我正在 Ionic 2 中创建一个应用程序,它使用来自现有站点的 web api。要使用此 API,我必须通过以下方式在其中进行验证(类似于 facebook 登录):

  • 我在 InAppBrowser 组件中调用 api 登录页面,发送正确的密钥和返回 URL。
  • 用户在显示的表单中输入登录名和密码,API 将对其进行验证和验证。
  • API 调用返回 URL 并传递授权令牌。
  • 我在 InAppBrowser 'loadstart' 事件中“劫持”这个重定向到返回 url,并提取并存储授权令牌。
  • 在对 API 的以下调用中,我在标头中发送授权令牌。

这在模拟器中一切正常,但在浏览器中不起作用(使用离子服务),因为当我调用 InAppBrowser 时,它实际上调用了 window.open,并且事件不起作用。我无法检测到在打开的窗口中进行的重定向操作。

我想在浏览器中进行这项工作,因为在那里调试应用程序更好。我的第一个想法是发送“http://localhost:8001”作为返回 url,但我找不到在 ionic 应用程序中捕获令牌参数的方法。

有谁知道我如何捕捉这个参数或任何其他方式使这个登录在浏览器中工作?它仅用于开发和调试目的,因此严格的安全性不是问题(我可以注释掉生产版本中的任何不安全代码)。


编辑:Hayden Braxton 的答案并没有解决我的问题,但由于它是因为我的应用程序独有的东西,它确实可以帮助想要使插件工作的人,我将它保留为选定的答案。

除此之外,我将分享我找到的解决问题的方法,以防它对任何人有所帮助。其实很简单:

【问题讨论】:

  • inAppBrowser 是一个cordova plugin。离子服务中未加载cordova插件..
  • 我知道,我正在寻找一种替代方法来使登录在 ionic serve 中工作。
  • 那么我的解决方案解决了您的问题吗?如果是,如果您能将其标记为解决方案,那就太好了,如果不是,请发布有助于我们找到解决方案的其他详细信息。
  • 为了社区的利益,您可能还需要考虑编辑问题的标题。如果我错了,请纠正我,但在更大范围内,您的问题似乎更多是关于在浏览器中运行时让离子插件工作,而您的登录问题似乎是这个更大问题的副作用。其他人也会有同样的问题,让插件工作,所有这些都有不同的应用程序和需求。
  • 我使用这个标题是因为我的目标不是让插件工作,而是让登录工作,不管有没有插件,但我知道新标题会根据答案帮助其他人,所以我会改变它。

标签: api authentication ionic-framework ionic2


【解决方案1】:

添加

"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

如果浏览器平台已经添加,请从您的平台目录中删除浏览器目录,然后运行添加平台命令,以确保安全。

【讨论】:

  • 这个配置会做什么?
  • 当你在本地运行你的应用程序进行开发时,它几乎可以让你使用cordova插件。我们目前使用 ionic-app-script 1.1.3,它对我们有用。我们在工作中使用 InAppBrowser 在我们的应用程序中,并使用上述命令在本地启动应用程序让我们使用 InAppBrowser 以及其他插件。
  • 老实说,我无法向您解释幕后发生的事情的细节。 ionic cli 和 ionic-app-scripts 没有很好的文档记录,并且在以前的版本中存在不确定性。从 1.1.3 开始,这仍然有效。我的老板花了一些时间挑选他们的源代码并想出了这个。所以这是我在本地运行离子应用程序时使用的命令,它让我们使用cordova插件。
  • 有趣..您需要为此添加浏览器平台吗?
  • 是的,好问题。您确实需要添加浏览器平台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2018-10-29
相关资源
最近更新 更多