Android WebView 不显示标题栏或浮动按钮
Posted
技术标签:
【中文标题】Android WebView 不显示标题栏或浮动按钮【英文标题】:Android WebView not showing header bars or floating buttons 【发布时间】:2021-03-14 11:48:06 【问题描述】:我有一个 android WebView
我想在其中显示一个页面,但页面的某些元素没有显示。
因为它是一个与工作相关的页面,您需要一个帐户才能访问它,但它托管在Microsoft Sharepoint
。
在图片 1(左)上是我的 WebView
,它没有显示在图片 2(右)上可以看到的 2 个标题栏,并且在中间有一个浮动按钮,它覆盖视图,它Android的WebView
中也没有显示。
Picutre 2 是普通网络浏览器中的页面,但在移动视图中。我也试过通过手机浏览器正常打开页面,效果也很好。
这是一个简单的WebView
,它会产生同样的错误:
public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setjavascriptEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setDomStorageEnabled(true);
myWebView.loadUrl("https://secret.webpage.com");
private class MyWebViewClient extends WebViewClient
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
return false;
<ConstraintLayout>
<WebView
android:id="@+id/webview"
android:layout_
android:layout_
/>
</ConstraintLayout>
我已经尝试通过实现 BaseChromeClient 来实现自定义 Chromium 浏览器,但这也没有产生任何结果。
如果有关于网页的问题,我会尽快提供答案。
【问题讨论】:
您是否尝试过使用Remote WebView Debugging 调试/查找错误或检查您的站点是否使用了Chrome Custom Tab 可能能够解决的功能? 我并没有真正发现WebView Debugging
有什么帮助,但感谢您指出这一点,它可能在未来有用。据我所知,Chrome Custom Tab
是在外部浏览器中打开应用程序,但我想在我的WebView
中打开它。我可以添加的另一件事是该页面托管在Microsoft Sharepoint
。
在浏览器的移动视图上打开链接时的外观如何?可以在这里显示:)
可能是这样,例如由于 WebView 使用了默认的 User-Agent,sharepoint 不会呈现这些顶部栏。我首先使用WebView.setWebContentsDebuggingEnabled(true)
为webview 启用远程调试,然后将桌面Chrome 连接到它以查看html 的样子。如果顶部栏不存在,则尝试将 User-Agent 更改为类似于默认浏览器的 webview.getSettings().setUserAgentString(...)
。
【参考方案1】:
要保持 webview 的方向和屏幕大小以防止因方向更改而破坏网页内容,请将此行添加到您的 xml。
<WebView
...
android:configChanges="orientation|screenSize"
/>
而且网页header可以放在android导航栏后面,所以请尽量隐藏页面的android导航栏。
您能否也分享您的网页 html / css 代码?
【讨论】:
【参考方案2】:我认为您应该为浮动操作按钮设置框架布局。试试这个。
<FrameLayout
android:layout_
android:layout_>
<WebView
android:layout_
android:layout_ />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_
android:layout_ />
</FrameLayout>
【讨论】:
以上是关于Android WebView 不显示标题栏或浮动按钮的主要内容,如果未能解决你的问题,请参考以下文章
Android Compose 新闻App导航动画WebView浮动按钮底部导航
Android Compose 新闻App导航动画WebView浮动按钮底部导航