我在网上搜索过,但没有解决这个问题。 我正在使用离子v1,其中我正在加载我的adfs网址,要求用户通过adfs网页登录,但仅在某些手机上我看到登录页面而在其他手机上我看到空白屏幕。 我试过调试它但到目前为止我没有得到任何建议。 我正在使用
加载网址window.open("https://inve....", '_system');
到目前为止,我们只在Android手机上遇到过这个问题,但我也是以iPhone为目标。 任何帮助将不胜感激。谢谢
答案 0 :(得分:3)
应用浏览器并为此离子应用加载带有网址的adfs登录页面。
我面临的问题是因为证书,服务器正在使用自签名证书,因此当我尝试将其加载到甚至无法在浏览器上打开服务器页面的设备上时卡在白色屏幕上。
如果您的服务器由CA签署了适当的认证证书,那么这个问题就不会发生,因为浏览器可以轻松验证这些证书。 这就是为什么早些时候使用正确的证书我的Android应用程序曾经在所有Android手机上工作。
如果您想在本地指定证书,请link了解该过程。
对于在这种情况下寻求帮助的其他人。
答案 1 :(得分:1)
对于开放的外部网址,你需要使用与android和ios兼容的离子插件:
使用以下行安装cordova-plugin-inappbrowser:
cordova插件添加cordova-plugin-inappbrowser
之后将此代码放入您的html文件中:
<button class="button" ng-click="openurl('https://..........')">
Click here
</button>
然后通过控制器调用click事件:
.controller('MyCtrl', function($scope, $cordovaInAppBrowser) {
var options = {
location: 'yes',
clearcache: 'yes',
toolbar: 'no'
};
$scope.openurl = function (url) {
window.open(url, '_system', options);
}
OR
$scope.openurl = function (url) {
$cordovaInAppBrowser.open(url, '_system', options);
}
})
同样更改config.xml文件
<allow-intent href="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" launch-external="yes" />
<allow-intent href="https://*/*" launch-external="yes" />
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar" />
</feature>
如需进一步参考,您可以通过: https://github.com/apache/cordova-plugin-inappbrowser