【问题标题】:how to change status bar color in phonegap 3.4 in inappbrowser?如何在inappbrowser中更改phonegap 3.4中的状态栏颜色?
【发布时间】:2014-05-26 14:22:19
【问题描述】:

我当前的应用程序处于 phone gap 3.4 中。我可以控制 InAppBrowser 中的状态栏背景颜色吗?通过状态栏插件进行的任何更改都会反映在本机页面上,但不会反映在 Web 上?

目前 InAppBrowser 在状态栏上显示其背景颜色。要么我需要更改 web 上的状态栏颜色,要么我希望 InAppBrowser 从页面顶部开始而不留 20 像素边距,这将给我一个 iOS7 应用程序外观,默认情况下状态栏是透明的。

【问题讨论】:

    标签: cordova statusbar inappbrowser


    【解决方案1】:

    根据 cordova v 3.4,您有许多自定义状态栏的选项

    隐藏状态栏:

    • 首先(在 xcode 中)单击您的项目
    • 然后单击 Resources 文件夹以公开您的 .plist
    • 找到 .plist 后,单击信息属性列表旁边的 (+)
    • 添加此属性查看基于控制器的状态栏外观,值为 NO

    将状态栏改为半透明:

    • 首先(在 xcode 中)单击您的项目
    • 找到 TARGETS,在 TARGETS 下点击您的项目名称
    • 查找部署信息,然后查看状态栏样式下拉选项列表

    在 confix.xml 中更改状态栏背景

    • 首先(在 xcode 中)单击您的项目
    • 找到 confix.xml
    • 将这些行添加到

      之前的 xml

      小部件 >

    将状态栏插件添加到 Cordova

    • 在终端内.. cd 进入您的科尔多瓦所在的项目
    • 运行此命令
      cordova 插件添加 org.apache.cordova.statusbar

    • 加载插件后,您可以通过加载cordova时触发的onDeviceReady函数使用该插件。

    示例:

    onDeviceReady: function () {
    
      StatusBar.overlaysWebView(false);
      StatusBar.hide();
      App.phoneGapApp.receivedEvent('deviceready');
    }
    

    希望这会有所帮助。

    【讨论】:

    • 这适用于本机,但当我从本机移动到 inappbrowser 时不起作用
    【解决方案2】:

    要更改状态栏和导航栏的颜色,请访问文件CDVInAppBrowser.m(位于${PROJECT_ROOT}/platforms/ios/${PROJECT_NAME}/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m

    状态栏:

    greenColor 更改为任何UIColor

    - (void)createViews
    {
        self.webView.backgroundColor = [UIColor greenColor];
    }
    

    导航栏

    redColor 更改为任何UIColor

    - (void)createViews
    {
        self.view.backgroundColor = [UIColor redColor];
    }
    

    状态栏文字颜色

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        // White
        return UIStatusBarStyleLightContent;
    
        // Or Black:
        // return UIStatusBarStyleDefault;
    }
    

    【讨论】:

      【解决方案3】:

      2018 年更新

      您可以在这样的选项中传递所需的工具栏颜色(红色):

      cordova.InAppBrowser.open(url, '_blank', 'toolbar=yes,toolbarcolor=#FF0000');
      

      【讨论】:

      • 工具栏 != 状态栏
      • 你完全正确;但是,这确实改变了应用内浏览器弹出窗口的状态栏颜色。如果你想改变状态栏颜色使用插件:cordova-plugin-statusbar
      • 只是好奇——如果你改变状态/工具栏的颜色,当你切换到夜间模式时会发生什么?我遇到了无法保持该颜色的问题,但夜间模式会切换到对比色(黑色)。我只能通过一起禁用夜间模式来修复它(在 config.xml 中)
      猜你喜欢
      • 2017-02-22
      • 2023-03-05
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 2018-03-15
      • 2016-07-06
      相关资源
      最近更新 更多