如何在inappbrowser中更改phonegap 3.4中的状态栏颜色?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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 中)

以上是关于如何在inappbrowser中更改phonegap 3.4中的状态栏颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nativescript 中使用 InAppBrowser

如何从 InAppBrowser 中调用 Phonegap 插件?

如何在cordova项目中异步打开inappbrowser

单击inappbrowser中启动的页面上的按钮时如何关闭phonegap inappbrowser?

如何在 Ionic 5 的 InappBrowser 的 IOS 设备中显示“返回”选项?

我们如何在 Android 的 Cordova.inappbrowser 中显示基于 64 位字符串的 PDF