【问题标题】:Cannot find hostname in file:/// error when using Ionic and OAuth.io使用 Ionic 和 OAuth.io 时在 file:/// 中找不到主机名错误
【发布时间】:2015-09-22 08:39:39
【问题描述】:
我正在使用 Ionic 和 Oauth.io 来执行身份验证。如果我运行ionic serve 并将outh.js 文件包含在我的索引中,那么在浏览器中一切正常。
但是当我运行ionic run ios 或在android 中安装应用程序时,当我按下身份验证按钮时出现以下错误(假设执行OAuth.popup 的那个
我不知道该怎么做,直到现在我检查了以下内容:
- 在 config.xml 中,我可以访问、允许意图和允许导航完全许可
- 我已经安装并重新安装了插件
ionic plugin add https://github.com/oauth-io/oauth-phonegap.git
- 我尝试在不包含 oauth.js 文件的情况下运行本机应用程序,但一切都中断了。
- 使用最新的当前版本。
- 我是 Ionic 的新手,所以我不知道如何调试设备运行的应用程序或模拟器。
- 可能与 post 类似,但不完全一样。
您的建议将不胜感激。
【问题讨论】:
标签:
angularjs
ionic-framework
hybrid-mobile-app
oauth.io
【解决方案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 以便快速访问。
希望这对任何人都有帮助。