我有一个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
我尝试了什么?
Settings
→Safari
→Block Pop-ups
→ Disable
(没有用。新窗口仍然没有打开)window.open = cordova.InAppBrowser.open
(没有用,因为这里的问题是,这段代码在加载我的cordova应用程序之前是适用的。一旦加载了<< [MyAngularApp),则上下文更改并且此块代码不在上下文中。)>我有一个cordova应用程序,它根据一些版本匹配逻辑从服务器下载angularjs应用程序(说“ MyAngularApp”)。此“ MyAngular”应用程序位于一个压缩文件夹中,我的...