0

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

但是当我ionic run ios在 android 中运行或安装应用程序时,当我按下 auth 按钮时出现以下错误(假设执行的那个OAuth.popup

意外错误

我不知道该怎么做,直到现在我检查了以下内容:

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

您的建议将不胜感激。

4

1 回答 1

1

我想通了阅读一些帖子。OAuth初始化和引用应该在设备准备好之后进行,所以最好将initialize放在这个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 以便快速访问。

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

于 2015-07-04T22:21:26.023 回答