【问题标题】:Dynamic resizing of app window (bounds) via webview通过 webview 动态调整应用程序窗口(边界)的大小
【发布时间】:2015-05-27 11:56:56
【问题描述】:

我已经构建了简单的桌面应用程序,它将内容加载到 webview 元素中。

现在我正在寻找一些选项,如何根据从 webview 中的 DOM 调用的一些 Javascript 操作来调整应用程序窗口的大小。

例如: 默认情况下,我会在他们的桌面上显示与使用此 Chrome 应用程序的团队相关的一些信息。这些数据是从运行在我们使用 HTML/CSS/jQuery 渲染的服务器上的 PHP 应用程序中获取的。 现在我想渲染一些表单,这将为我们提供直接在 Chrome 应用程序中编辑此内容并将它们存储在数据库中的选项,但问题是,默认情况下 Chrome 应用程序非常小:大约。 200x300px,目前,当我渲染这个表单时,我需要将整个应用程序的大小调整为大约。 300x500px,我不知道如何实现。

我正在浏览 Chrome 应用程序文档,在那里我找到了一些与 app.window 相关的信息,但我没有找到方法,如何将其应用到现实世界的应用程序中并通过 webview 元素中的 Javascript 执行这样的命令。

感谢您的任何想法和建议。

【问题讨论】:

    标签: javascript css html google-chrome-app


    【解决方案1】:

    不会能够从 web 视图中执行此操作。你说得对,chrome.app.window 是必需的 API,但是嵌入 webview 的页面没有调用它的权限。

    您需要communicate with your app's script,它具有必要的权限。我实际上建议使用"externally_connectable" method,因为它是针对特定网站的。

    将消息传递给应用页面的脚本后,您可以调整窗口大小

    chrome.app.window.current().innerBounds.setSize(width, height)
    

    或者,如果是事件页面中的监听器,

    chrome.app.window.get(windowId).innerBounds.setSize(width, height)
    

    请注意,您可以在创建窗口时设置初始大小。

    【讨论】:

    • 谢谢,我会努力研究,如何实现app和webview的这种通信。
    • 我已经研究了如何实现这一点,如果我添加到 browser.js 加载到清单中定义的 html 文件中 console.log(e.data);控制台输出“你好主机!”消息,所以这似乎工作正常,但我不知道如何更改边界大小 - 你能给我一个提示吗?
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多