Cannot find hostname in file:/// 使用 Ionic 和 OAuth.io 时出现错误

Cannot find hostname in file:/// error when using Ionic and OAuth.io

我正在使用 Ionic 和 Oauth.io 来执行身份验证。如果我 运行 ionic serve 并将 outh.js 文件包含在我的索引中,那么在浏览器中一切正常。

但是当我 运行 ionic run ios 或在 android 中安装应用程序时,当我按下授权按钮(应该执行 OAuth.popup

我不知道该怎么办,到目前为止我已经检查了以下内容:

  1. 在 config.xml 我有访问权限、允许意图和允许导航完全许可
  2. 我已经安装并重新安装了插件ionic plugin add https://github.com/oauth-io/oauth-phonegap.git
  3. 我尝试 运行 本机应用程序而不包含 oauth.js 文件,但一切都崩溃了。
  4. 使用最新的当前版本。
  5. 我是 Ionic 的新手,所以我不知道如何调试设备-运行宁应用程序或模拟器。
  6. 可能与此类似 post 但不完全相同。

我们将不胜感激您的建议。

我看了一些帖子就明白了。 OAuth的初始化和引用应该在设备准备好后进行,所以最好把初始化放在这个block:

$ionicPlatform.ready(function() {
  // ...
  if(typeof window.OAuth !== 'undefined'){
    $rootScope.OAuth = window.OAuth;
    $rootScope.OAuth.initialize('XXX');
  }
  else{
    console.log("plugin not loaded, this is running in a browser");
    $.getScript( "lib/oauth.js", function() {
      $rootScope.OAuth = OAuth;
      $rootScope.OAuth.initialize('XXX');
    });

  }
});

现在,如果插件已加载,它会初始化 window.OAuth 对象,否则应用程序在浏览器中为 运行,因此我必须包含 oauth.js 文件。此外,我将 OAuth 分配给 $rootScope 以便快速访问。

希望这对任何人都有帮助。