【问题标题】:IONIC 5 - InAppBrowser is not installed or you are running on a browser -XCODE 13IONIC 5 - InAppBrowser 未安装或您正在浏览器上运行 -XCODE 13
【发布时间】:2022-03-17 00:15:19
【问题描述】:

我有一个 IONIC 5 / cordova 项目,我使用 InAppBrowser 打开一个链接。

在下一个代码中:

const browser = this.iab.create(url);

我在 IOS 设备和 IOS 模拟器中的执行时间收到错误“警告:InAppBrowser 未安装或您正在浏览器上运行。回退到 window.open”。

我尝试了各种我在互联网上找到的东西:

首先,我用@ionic-native/in-app-browser 插件做了很多测试,但我总是得到相同的结果:

  • 移除 node_modules、www、platform/ios
  • 重新安装(删除并安装)应用内浏览器库
  • 在 dev 和 prod 模式下重新编译。
  • 同样的错误..

我已经用新插件再次尝试了:

$ ionic cordova plugin add cordova-plugin-inappbrowser 
$ npm install @awesome-cordova-plugins/in-app-browser 
  • 我更改代码以获得新的原生插件

    $ ionic cordova 平台添加ios

  • 构建开发和产品

    $ ionic cordova build ios $ ionic cordova build ios --prod

  • 同样的结果。

我已经验证了cordova插件安装在XCode项目的/Plugins文件夹中。

我有几件事要评论:

现在我使用 XCode 13,但在 XCode 12 中工作正常。为了升级 XCode,我将 MacOS 从 Catalina 升级到 Monterey。

这两个项目的唯一区别在于,在 XCode 13 中,“旧版构建系统”已被禁用,因为它已“弃用”。

我不知道 XCode 是否不导入库,我不知道是否需要“Legacy Build System”。我什么都不知道... :-(

谁能帮帮我?

谢谢。

【问题讨论】:

  • 你在使用 Ionic 和 Angular 吗?升级到 Angular 11 时我遇到了类似的问题。请参阅此处stackoverflow.com/a/69295268/15947768
  • 是的,它是一个 Angular (11.2.11) 项目。我已经做了你告诉我的改变,但我仍然有同样的问题。 :-(
  • 我似乎问题在于将它用于promise.then() 或在await promise 之后......有什么想法吗?
  • 使用电容器打开页面 window.open 插件但没有承诺。它从不执行 xcode 代码。使用科尔多瓦,它没有任何作用。

标签: ios cordova ionic-framework inappbrowser


【解决方案1】:

我发现了问题。

在我的项目中,我有一个“Object.prototype”函数,它会产生循环对象的大问题。

引用 InAppBrowser 插件,在文件 inappbrowser.js 中:

callbacks = callbacks || {};
for (var callbackName in callbacks) {
    iab.addEventListener(callbackName, callbacks[callbackName]);
}

也许它可以通过 Object.keys(callbacks) 来改进,但我认为这是我的问题。

谢谢。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2020-03-01
    • 2020-01-22
    相关资源
    最近更新 更多