使用 kiosk 和 chromium-args 打开新窗口

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

我正在尝试构建一个在新窗口中打开网页的 kisok 应用程序。在那个新窗口上,我想添加仅允许该网页的规则。但似乎 chromium-args 不是 open 函数的有效选项。那么,如果不允许该选项,我该如何解决这个问题?

var new_win = gui.Window.open('https://github.com', {
    kiosk: true,
    'chromium-args' : '--host-rules="MAP * github.com"'
});
nw.js
2个回答
1
投票

您需要窗口事件new-win-policy:

function (frame, url, policy) {}

当从此窗口或子 iframe 请求新窗口时发出,例如用户单击目标为 _blank 的链接。

policy 是一个具有以下方法的对象:

  • ignore()
    :忽略请求,导航不会发生。
  • forceCurrent()
    : 强制同框打开链接
  • forceDownload()
    :强制链接可下载,或通过以下方式打开 外部程序
  • forceNewWindow()
    :强制在新窗口中打开链接
  • forceNewPopup()
    :强制在新的弹出窗口中打开链接
  • setNewWindowManifest(m)
    :控制新弹出窗口的选项 窗户。对象 m 与窗口子字段的格式相同 清单格式(例如
    {"frame" : false}
    )。从 v0.11.3 开始

接下来是代码:

var new_win = gui.Window.open('https://github.com', { kiosk: true });
new_win.on('new-win-policy', function (frame, url, policy) {
    policy.ignore()
});

0
投票

我已经尝试过了,大多数时候它不会触发窗口事件 new-win-policy

 nw.Window.open(url, {
    width: 1200,
    height: 850,
    x:200,
    y:50,
    focus:true,
    frame:true,
    always_on_top: false,
    
},function(e){
    // e is new Window click Click the link inside
    e.on('new-win-policy',function(a,b,c){
        console.log(b)
        c.ignore();
        e.window.location.href = b;
    })
});
© www.soinside.com 2019 - 2024. All rights reserved.