[英]Ionic 4 - InAppBrowser not working with '_blank' - Page doesn't load
我已经完成了一个使用 InAppBrowser 的 Ionic 4 应用程序,当目标是 _self 时,它在 iOS 设备上运行良好,但当目标是 _blank 时,InAppBrowser 尝试加载网页,但仍停留在白屏上。
我已经安装了
ionic cordova plugin add cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser
我已经在相应的 ts 页面和 app.module.ts 中导入
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
我已在 app.module.ts 中将其声明为提供者
providers: [
InAppBrowser,
StatusBar,
SplashScreen,
CallNumber,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
这是代码
const browser = this.iab.create('https://www.google.com', '_blank');
browser.show();
我记得这个错误专门针对 ios 设备。 我的原因是使用localhost:XXXX
而不是有效的 URL,其中 XXXX 是端口号。 如果您的 XXXX 端口上没有运行应用程序,就会发生这种情况。
我意识到在 iOS 上,当您使用像 localhost:XXXX 这样的无效 URL 时, inappbrowser
无法呈现带有 404 错误的页面。 它只是没有显示任何内容:(。在 Android 设备上,您会看到一个 404 页面,说找不到 URL。但在 iOS 中,这不会发生。我花了一段时间才弄清楚。
谈到您的问题,如果您使用有效的工作 URL 遇到此问题,请检查您是否已连接到互联网。
尽管问题在 Ionic Dev App 中仍然存在,但在我通过 TestFlight 测试的最终应用程序版本中并没有出现。 所以看起来这只是一个 Ionic Dev App 问题。
截至今天 2021 年 2 月 26 日。使用 ionic 6。我遇到了这个问题,但我发现这个问题正在发生,因为我在添加cordova InAppBrowser 插件之前已经构建了我的项目。
我的解决方案
打开你的项目目录。 找到文件夹 android(或 iOS,具体取决于您构建的平台)和文件夹平台。
在项目目录之外的某处复制上面列出的两个文件夹,或者您只需重命名它们。
打开您的 CLI 并导航到项目目录,然后按顺序运行以下代码。
npm run build
ionic capacitor add android
ionic capacitor copy android && cd android && gradlew assembleDebug && cd ..
您不需要添加以下代码browser.show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.