【发布时间】:2013-03-16 16:45:55
【问题描述】:
目前似乎只能通过用户操作(鼠标/键盘事件)激活全屏功能。有没有办法绕过这个?
【问题讨论】:
目前似乎只能通过用户操作(鼠标/键盘事件)激活全屏功能。有没有办法绕过这个?
【问题讨论】:
现在,您可以在主 .js 中添加 state:"fullscreen" 属性:
chrome.app.runtime.onLaunched.addListener(
function() {
chrome.app.window.create('index.html',
{
state: "fullscreen",
}
);
}
);
确保不添加 resizable: false 或 bounds 属性,并在 manifest.json 上添加 "fullscreen" 权限。
{
...
"permissions": [
...
"fullscreen"
]
}
【讨论】:
chrome.app.window.create( 'view/viewer.html', { id: 'presentation-viewer-'+pres_id, bounds: {width: 1024, height: 768}, "resizable": false, state: "maximized" }
您可以使用需要用户操作的 HTML5 全屏 API:
button.addEventListener('click', function() {
document.body.webkitRequestFullscreen();
});
或使用 AppWindow 对象的更“app-y”方式,不需要用户操作:
chrome.app.window.current().fullscreen();
两者都需要manifest.json 中的"fullscreen" 权限。
【讨论】:
我已经用下面的代码让它工作了
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
'width': 1024,
'height': 768
},
function(win) {
win.maximize();
});
});
【讨论】:
manifest.json中将“全屏”添加到“权限”数组后,将其设为win.fullscreen()
查看https://plus.google.com/100132233764003563318/posts/2SuD7MVd8mG 指的是最近登陆的更改列表https://chromiumcodereview.appspot.com/12205002。您可以从以下任一来源提取示例代码:
document.body.addEventListener('click', function() {
document.body.webkitRequestFullscreen();
});
确保您在清单中请求“全屏”权限,并且您正在测试足够新的 Chrome 版本(测试版通道现在应该具有此功能,而开发人员肯定有)。
您的问题专门针对打包应用程序,但如果阅读此答案的人错过了这个,这仅适用于 Chrome 打包应用程序。
【讨论】:
main.js
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html',{},function(window) {
window.fullscreen();
});
});
manifest.json
{
...
"manifest_version": 2,
"minimum_chrome_version": "23",
"app": {
"background": {
"scripts": ["main.js"]
}
},
"permissions": ["fullscreen"]
}
【讨论】:
编辑:根据 BeardFist 的评论,我最初的回答在两个方面都是错误的。您可以在 Chrome 扩展程序(标记为)上执行此操作,但可能无法在打包的应用程序上执行此操作。
对于扩展,您可以使用 state:"fullscreen" 选项将其设为全屏,该选项可与chrome.window.update 一起应用。下面的代码通过chrome.windows.create 和chrome.window.update 链接窗口的创建。在我的实验中,您无法直接通过创建窗口来设置全屏状态。
chrome.windows.create(
{url:"PATH/TO/POPUP"},
function(newWindow) {
chrome.windows.update(newWindow.id, {state:"fullscreen"})
});
【讨论】:
{state:"fullscreen"} 从扩展程序触发全屏,但您不能使用打包的应用程序来做到这一点。事实上,您根本无法访问chome.windows,所以这也行不通。