Javascript Cordova ios应用程序-由于弹出窗口阻止程序,无法打开链接

Javascript Cordova ios应用程序-由于弹出窗口阻止程序,无法打开链接,javascript,ios,cordova,cordova-plugins,popup-blocker,Javascript,Ios,Cordova,Cordova Plugins,Popup Blocker,我有一个cordova应用程序,它根据一些版本匹配逻辑从服务器下载angularjs应用程序(比如“MyAngularApp”)。这个“MyAngular”应用程序位于一个压缩文件夹中,我的cordova应用程序将其解压缩并存储在移动设备上的一个永久位置 成功下载并解压缩“MyAngularApp”后,我使用从设备上的持久位置启动“MyAngularApp/index.html”file://path_to_angularjs_application_in_device/MyAngularApp

我有一个cordova应用程序,它根据一些版本匹配逻辑从服务器下载angularjs应用程序(比如“MyAngularApp”)。这个“MyAngular”应用程序位于一个压缩文件夹中,我的cordova应用程序将其解压缩并存储在移动设备上的一个永久位置

成功下载并解压缩“MyAngularApp”后,我使用从设备上的持久位置启动“MyAngularApp/index.html”file://path_to_angularjs_application_in_device/MyAngularApp/index.html

现在,我面临的问题是,当用户在iOS上点击“MyAngularApp”中的链接时,PopupLocker会阻止页面打开。“MyAngularApp”中用于打开页面的代码是

        function openUrlInNewTab(url, params, isExternal) {
                    if (params) {
                        url += '#' + params;
                    }
                    var windowName = url.startsWith('mailto') ? '_self' : '_blank';
                    $window.open(url, windowName);
        }
我知道如果我们可以修改上面的代码并将_blank替换为_system,理论上应该可以工作,但问题是我无法在“MyAngularApp”代码中进行更改

我试着从safari设置中关闭PopubLocker设置,但没有帮助。这里要考虑的是,我不能在MyangurAPP代码中做出改变。我只能修改我自己的cordova应用程序,下载这个“MyAngularApp”

此问题仅在iOS中发生。这在Android上非常有效。
在iOS版本12+上测试。Cordova 7.0.0版

我尝试了什么?

  • 转到
    设置
    Safari
    阻止弹出窗口
    禁用
    (不起作用。新窗口仍未打开)
  • 安装cordova InAppBrowser插件并分配
    window.open=cordova.InAppBrowser.open
    (不起作用,因为这里的问题是,这段代码在我的cordova应用程序加载之前是适用的。一旦“MyAngularApp”加载,则上下文会发生变化,并且这段代码不再在上下文中)

  • 有什么想法吗?

    我自己能解决这个问题。以下是解决我问题的方法,以防有人仍在寻找答案

    因为,在上面解释的场景中,嵌入式AngularJs应用程序无法访问cordova库。它是在移动中下载的,然后在cordova webview中浏览,这阻止了cordova打开新窗口所需的协助


    我手动将
    'cordova.js'
    文件包含在我的
    index.html
    所在的文件夹中,它解决了这个问题。

    嘿,你解决过这个问题吗?我有完全相同的问题Hey@Smithy,谢谢提醒。我已经贴出了答案。希望这对你有帮助。