Cordova Android 不会显示 StatusBar

Cordova Android Will Not Display StatusBar

我有一个问题一直在努力解决,none 我在网上看到的解决方案也有帮助。

很简单,所以您认为解决方案也是如此。 在 Cordova 构建的 Android 平台上,我正在使用 config.xml 中设置的 StatusBar 插件来偏好并显示它......是的,我试图让它显示在应用程序中而不是隐藏。每次应用程序运行时它似乎都被隐藏了。

在我的 InAppBrowser 选项字符串中,我还设置了 fullscreen=no 这样也不会影响它。

运行 模拟器和设备上的应用程序仍然隐藏它。有人可能知道强制显示状态栏的解决方案吗?如果没有,这是什么原因?

onDeviceReady: function() {
StatusBar.overlaysWebView(true);
    //InAppBrowser Init
    var options = "location=no,fullscreen=no,zoom=no"
    Browser = cordova.InAppBrowser.open('http://www.app.example', '_self', options);

StatusBar 插件也被正确导入,可以在这里看到,这是通过 plugman 完成的:

这是我的 Config.xml 文件以获得更好的支持信息:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.pulse_co" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<feature name="Notification">
    <param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
<feature name="InAppBrowser">
    <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>
<feature name="NetworkStatus">
    <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
<feature name="Whitelist">
    <param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" />
    <param name="onload" value="true" />
</feature>
<feature name="OneSignalPush">
    <param name="android-package" value="com.plugin.gcm.OneSignalPush" />
</feature>

<name>Pulse</name>
<description>
    Add Pulse App Description Here
</description>
<author email="email@test.com" href="https://support.example.com">
    Team
</author>
<content src="index.html" />
<access origin="https://root.domain.co*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-intent href="market:*" />
<preference name="loglevel" value="DEBUG" />
<preference name="StatusBarOverlaysWebView" value="true" />
<feature name="StatusBar">
    <param name="android-package" value="org.apache.cordova.statusbar.StatusBar" />
    <param name="onload" value="true" />
</feature>

如果您使用 '_blank',这些选项仅对 InAppBrowser 有效。

  • '_self' = 在 Cordova 中打开 window
  • '_blank' = 在 InAppBrowser 中打开 window
  • '_system' = 在系统浏览器中打开

安装状态栏插件

cordova plugin add cordova-plugin-statusbar

如果仍然无效,请尝试在设备就绪事件后调用 show

StatusBar.show();

删除

StatusBar.overlaysWebView(true);

或者设置为false

也删除

<preference name="StatusBarOverlaysWebView" value="true" />

或者设置为false

OverlaysWebview男性状态栏透明

已接受的答案对我不起作用

对于仍然面临这个问题的任何人, 根据 Cordova plugin page

fullscreen: Sets whether the InappBrowser WebView is displayed fullscreen or not. In fullscreen mode, the status bar is hidden. Default value is yes.

所以,为了保持状态栏可见,在选项

中传递fullscreen: "no"
let browser = this.inAppBrowser.create(
      "https://github.com"
      "_target",
      { zoom: "no", location: "no", fullscreen: "no" }
);