如何在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 插件?
单击inappbrowser中启动的页面上的按钮时如何关闭phonegap inappbrowser?