You need to enable JavaScript to run this app. WinJS UWP WebView应用如何默认全屏启动:找不到App.Xaml.Cs改main.js无效
优惠活动
大模型
产品
解决方案
定价
更多

WinJS UWP WebView应用如何默认全屏启动:找不到App.Xaml.Cs改main.js无效

问题根因
  • WinJS UWP项目模板本身不包含App.xaml.cs文件,该文件仅用于XAML语言栈的UWP项目,所有生命周期逻辑均由main.js承载,之前的文件查找方向存在偏差。
  • 你修改后的main.js存在三处直接导致全屏失效的问题:
    • 参考的示例代码中,launchInFullScreenMode是页面上的复选框控件,你仅复制了JS逻辑但未在对应HTML页面中添加该控件,运行时访问该元素会直接抛出空引用异常,中断后续启动流程
    • 代码中存在语法错误:args.setPromise(WinJS.UI.processAll(); 缺少闭合括号,导致脚本无法正常解析执行
    • 仅配置了启动窗口偏好,未在视图初始化完成的节点主动触发全屏进入逻辑
实现默认全屏启动的修改方案
  1. 删除所有与launchInFullScreenMode相关的冗余代码,包括对应的事件绑定、属性读写、自定义状态判断函数
  2. 修正原有代码中的语法错误,补充视图初始化阶段的全屏触发逻辑
  3. 可按需添加标题栏移除逻辑,实现沉浸式全屏效果
修正后的可直接运行的main.js完整代码
(function () {
    "use strict";

    var app = WinJS.Application;
    var activation = Windows.ApplicationModel.Activation;
    var isFirstActivation = true;
    var ViewManagement = Windows.UI.ViewManagement;
    var ApplicationViewWindowingMode = ViewManagement.ApplicationViewWindowingMode;
    var ApplicationView = ViewManagement.ApplicationView;

    app.onactivated = function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            // 配置默认启动窗口为全屏模式
            ApplicationView.preferredLaunchWindowingMode = ApplicationViewWindowingMode.fullScreen;
        }

        if (!args.detail.prelaunchActivated) {
            // 非预启动场景下,执行启动初始化逻辑
            if (args.detail.kind === activation.ActivationKind.launch) {
                // 获取当前视图,主动触发全屏进入,对应原C#版本的调用逻辑
                var currentView = ApplicationView.GetForCurrentView();
                currentView.TryEnterFullScreenMode();
                
                // 可选:移除默认标题栏,实现沉浸式全屏
                var titleBar = currentView.TitleBar;
                titleBar.BackgroundColor = Windows.UI.Colors.Transparent;
                titleBar.ButtonBackgroundColor = Windows.UI.Colors.Transparent;
                currentView.SetTitleBar(null);
            }
        }

        if (isFirstActivation) {
            document.addEventListener("visibilitychange", onVisibilityChanged);
            // 修正原有语法错误,补充processAll的闭合括号
            args.setPromise(WinJS.UI.processAll());
        }

        isFirstActivation = false;
    };

    function onVisibilityChanged(args) {
        if (!document.hidden) {
            // 应用切回前台时的视图刷新逻辑可按需补充
        }
    }

    app.oncheckpoint = function (args) {
        // 应用挂起时的状态持久化逻辑可按需补充
    };

    app.start();
})();
注意事项
  • 上述逻辑全部基于JS实现,无需依赖任何C#代码文件,WinRT API可通过WinJS的全局命名空间直接调用
  • 若需要保留退出全屏的能力,可在页面交互元素中绑定currentView.ExitFullScreenMode()方法即可
  • 配置完成后无需修改package.appxmanifest中的其他设置,即可实现应用启动即默认全屏的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 06:57:02