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

问题描述 投票:0回答:1

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

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

现在,我面临的问题是,当用户在iOS上单击'MyAngularApp'中的链接时,popupblocker阻止了页面打开。在'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浏览器设置中关闭popupblocker设置,但这没有帮助。这里要考虑的是,我无法在'MyAngularApp'代码内进行更改。我只能修改自己的cordova应用程序,该应用程序会下载此“ MyAngularApp”。

此问题仅在iOS中发生。这在Android上完美运行。在iOS 12以上版本上进行了测试。 Cordova版本7.0.0

我尝试了什么?

  1. 转到Settings SafariBlock Pop-ups Disable(没有用。新窗口仍然没有打开)
  2. 安装cordova InAppBrowser插件并分配window.open = cordova.InAppBrowser.open(没有用,因为这里的问题是,这段代码在加载我的cordova应用程序之前是适用的。一旦加载了<< [MyAngularApp),则上下文更改并且此块代码不在上下文中。)>
  3. 任何想法?

我有一个cordova应用程序,它根据一些版本匹配逻辑从服务器下载angularjs应用程序(说“ MyAngularApp”)。此“ MyAngular”应用程序位于一个压缩文件夹中,我的...

javascript ios cordova cordova-plugins popup-blocker
1个回答
0
投票
我能够自己解决这个问题。如果有人仍在寻找答案,这是解决我问题的方法。
© www.soinside.com 2019 - 2024. All rights reserved.