由于 SSL 证书,InAppBrowser 无法加载网站
InAppBrowser not loading website because of SSL certificate
我有一个带 InAppBrowser 插件的 Ionic 5.x 应用程序。我正在尝试使用该插件加载一个网站,浏览器打开但页面完全空白并且没有抛出任何错误。
经过几个小时的调试,我得出结论,问题是网站的证书不被信任。
没有意义的是,在浏览器上查看该网站是安全的,并且 "Verified by: DigiCert Inc"
同问题的其他问题:
,
Cordova inAppBrowser opens www.google.com but not my custom facebook login page?
有人知道为什么会这样吗?
我用来打开的代码:
this.browser = this.inAppBrowser.create( "https://mywebsite.com/", "_blank", "location=yes" );
this.browser.on("loadstart").subscribe( event => {
console.log( event ); // not triggered
});
this.browser.on("loadstop").subscribe( event => {
console.log( event ); // triggered
});
this.browser.on("loaderror").subscribe( event => {
console.log( event ); // not triggered
});
经过许多小时的挖掘,我终于找到了解决方案。编辑插件文件并不理想,但它确实解决了这个问题!
编辑此文件:plugins/cordova-plugin-inappbrowser/src/android/InAppBrowser.java
将此添加到导入部分:
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
然后将此添加到 InAppBrowserClient
class(大约第 1224 行):
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
return;
}
在文件中 "plugins\cordova-plugin-inappbrowser\src\android\InAppBrowser.java":
将此行添加到导入部分:
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
将此添加到 InAppBrowserClient
class(大约第 1224 行):
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
return;
}
在项目根控制台中:执行
$ cordova platform remove android
$ cordova platform add android
我有一个带 InAppBrowser 插件的 Ionic 5.x 应用程序。我正在尝试使用该插件加载一个网站,浏览器打开但页面完全空白并且没有抛出任何错误。
经过几个小时的调试,我得出结论,问题是网站的证书不被信任。
没有意义的是,在浏览器上查看该网站是安全的,并且 "Verified by: DigiCert Inc"
同问题的其他问题:
有人知道为什么会这样吗?
我用来打开的代码:
this.browser = this.inAppBrowser.create( "https://mywebsite.com/", "_blank", "location=yes" );
this.browser.on("loadstart").subscribe( event => {
console.log( event ); // not triggered
});
this.browser.on("loadstop").subscribe( event => {
console.log( event ); // triggered
});
this.browser.on("loaderror").subscribe( event => {
console.log( event ); // not triggered
});
经过许多小时的挖掘,我终于找到了解决方案。编辑插件文件并不理想,但它确实解决了这个问题!
编辑此文件:plugins/cordova-plugin-inappbrowser/src/android/InAppBrowser.java
将此添加到导入部分:
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
然后将此添加到 InAppBrowserClient
class(大约第 1224 行):
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
return;
}
在文件中 "plugins\cordova-plugin-inappbrowser\src\android\InAppBrowser.java":
将此行添加到导入部分:import android.net.http.SslError; import android.webkit.SslErrorHandler;
将此添加到
InAppBrowserClient
class(大约第 1224 行):public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); return; }
在项目根控制台中:执行
$ cordova platform remove android $ cordova platform add android