You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX PWA双屏场景下独立模式新窗口打开方案问询

解决方案:在已安装的PWA中以独立模式打开新窗口

要实现从已安装的PWA内通过点击按钮打开独立模式新窗口,你需要调整window.open的调用参数,同时确保目标页面属于同一PWA生态。

1. 基础修改方案

直接在window.open的第三个参数中指定display=standalone特性,同时保证目标URL与当前PWA同源:

document.querySelector('#target-button').addEventListener('click', () => {
  const targetUrl = 'f?p=&APP_ID.:5:&SESSION.::::';
  // 可自定义窗口尺寸,适配双屏需求
  window.open(targetUrl, '_blank', 'display=standalone,width=1200,height=800');
});

2. 关键前提条件

  • 目标页面必须和当前PWA同源,且引用了相同的manifest.json,其中display字段需设置为standalone:
    {
      "display": "standalone",
      "name": "你的PWA应用名称",
      // 其他manifest配置项...
    }
    
  • 当前应用必须是已安装并以独立模式运行的PWA,而非在普通浏览器标签页中打开。

3. 双屏适配优化

针对双屏用户,可通过计算屏幕位置自动将新窗口定位到第二屏幕:

document.querySelector('#open-on-second-screen').addEventListener('click', () => {
  const targetUrl = 'f?p=&APP_ID.:5:&SESSION.::::';
  // 假设第二屏位于主屏幕右侧,自动计算位置
  const secondScreenLeft = window.screen.width;
  const secondScreenTop = 0;
  
  window.open(
    targetUrl,
    '_blank',
    `display=standalone,width=${window.screen.width},height=${window.screen.height},left=${secondScreenLeft},top=${secondScreenTop}`
  );
});

原理说明

当PWA以独立模式运行时,浏览器允许通过window.open的特性参数指定display=standalone,强制新窗口以独立的PWA窗口打开,而非普通浏览器标签页。该特性仅对同源的PWA页面生效,确保新窗口继承原应用的独立模式属性。

内容的提问来源于stack exchange,提问作者Steffen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:04:57