为什么在 android 中使用 WebViewClient 时无法导航?

麦克风

我创建了一个网站启动的活动。在应用程序中,我已将 AppTheme 设置为 Theme.AppCompat.NoActionBar,因此操作栏不会显示在任何活动布局上。

这是 webview 布局:

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

网页加载正常。但是没有导航属性,我也希望能够“取消”WebView 并返回到父活动。

我试图实现我在 android 开发页面上找到的一些代码,特别是让网页在 WebView 中打开,而不是在浏览器中打开,例如。铬合金。

https://developer.android.com/guide/webapps/webview.html

活动;

public class WebActivity extends AppCompatActivity {

    String webAddress;
    WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        myWebView = (WebView) findViewById(R.id.webview);
        webAddress = getIntent().getStringExtra("WEB_ADDRESS");
        myWebView.loadUrl(webAddress);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.setWebViewClient(new WebViewClient());
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
        // If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        return super.onKeyDown(keyCode, event);
    }
}

但是我看不到任何导航属性,我也不确定如何取消活动,因为我已将应用栏作为主题删除。

阿马德·尤斯 |

你应该有工具栏,因为 webview 不提供任何导航按钮。你可以在你的布局中有这样的东西,并用onBackPressed. 您需要覆盖 onBackPressed 并检查您的 webview canGoBack().

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:contentInsetStart="5dp">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageButton
                    android:id="@+id/backBtn"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/ic_arrow_back_white_24dp"
                    android:layout_centerVertical="true"
                    android:background="?attr/selectableItemBackground"/>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_toRightOf="@+id/backBtn"
                    android:text="Your title"
                    android:textSize="22sp"
                    android:gravity="center_vertical"
                    android:textColor="@android:color/white"
                    android:ellipsize="end" />

            </RelativeLayout>

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.CoordinatorLayout>

或者,您也可以使用 chrome 自定义选项卡(可用于 Jellybean 以后)。实现非常简单。Chrome 自定义标签的实现指南请参考这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我无法在Android中使用JsonArray检索数据?

来自分类Dev

添加WebViewClient时,Android WebView忽略target =“ _ blank”

来自分类Dev

为什么视频无法在Android中使用ffmpeg保存给定路径?

来自分类Dev

为什么我的代码无法在android(as3)中使用CameraRoll

来自分类Dev

为什么我无法在 android studio 中使用 andengine 显示 admob 奖励视频广告?

来自分类Dev

在Android中使用iText库将图像转换为PDF时,为什么会裁剪图像

来自分类Dev

在Android中使用Retrofit时为什么不显示来自服务器的帖子

来自分类Dev

为什么屏幕上什么都没出现以及如何在Android中使用RecyclerView时解决此问题

来自分类Dev

使用设备凭证时,Android Biometrics无法导航

来自分类Dev

Android WebViewClient属性中的“ isForMainFrame”请求是什么意思?

来自分类Dev

为什么我的Android导航抽屉无法打开

来自分类Dev

为什么我无法在Wpf中使用应用程序内的WebView来导航html文件?

来自分类Dev

为什么Cakephp安全cookie没有存储在WebViewClient中?

来自分类Dev

为什么在Android中使用Intent.ACTION_PICK时文件管理器App无法正常工作?

来自分类Dev

为什么我突然无法在AS3 AIR Android项目中使用Firebase REST API刷新idToken?

来自分类Dev

为什么在Android应用程序中使用jdbc是错误的?

来自分类Dev

为什么在Android应用程序中使用jdbc是错误的?

来自分类Dev

为什么我们在Android中使用JSON?

来自分类Dev

为什么我需要在Android中使用super()?

来自分类Dev

为什么在 Android Studio 中使用 Firebase 数据库时 onClick 中的“If Condition”不起作用?

来自分类Dev

当我在 Android Studio 3.1.1 中使用约束时,为什么两个 TextView 位于 LinearLayout 的中心?

来自分类Dev

为什么安全导航比在Rails中使用try更好?

来自分类Dev

为什么按规则使用无法在Sass中使用?

来自分类Dev

折叠式导航无法使用边距-为什么?

来自分类Dev

为什么在使用Fullpage.js时导航不垂直?

来自分类Dev

为什么我无法在MySQL中使用“>”比较日期?

来自分类Dev

为什么SUB命令无法在xiki中使用cd命令?

来自分类Dev

为什么我的背景色无法在ComboBox中使用

来自分类Dev

为什么在Mockito中使用doReturn无法获得价值

Related 相关文章

  1. 1

    为什么我无法在Android中使用JsonArray检索数据?

  2. 2

    添加WebViewClient时,Android WebView忽略target =“ _ blank”

  3. 3

    为什么视频无法在Android中使用ffmpeg保存给定路径?

  4. 4

    为什么我的代码无法在android(as3)中使用CameraRoll

  5. 5

    为什么我无法在 android studio 中使用 andengine 显示 admob 奖励视频广告?

  6. 6

    在Android中使用iText库将图像转换为PDF时,为什么会裁剪图像

  7. 7

    在Android中使用Retrofit时为什么不显示来自服务器的帖子

  8. 8

    为什么屏幕上什么都没出现以及如何在Android中使用RecyclerView时解决此问题

  9. 9

    使用设备凭证时,Android Biometrics无法导航

  10. 10

    Android WebViewClient属性中的“ isForMainFrame”请求是什么意思?

  11. 11

    为什么我的Android导航抽屉无法打开

  12. 12

    为什么我无法在Wpf中使用应用程序内的WebView来导航html文件?

  13. 13

    为什么Cakephp安全cookie没有存储在WebViewClient中?

  14. 14

    为什么在Android中使用Intent.ACTION_PICK时文件管理器App无法正常工作?

  15. 15

    为什么我突然无法在AS3 AIR Android项目中使用Firebase REST API刷新idToken?

  16. 16

    为什么在Android应用程序中使用jdbc是错误的?

  17. 17

    为什么在Android应用程序中使用jdbc是错误的?

  18. 18

    为什么我们在Android中使用JSON?

  19. 19

    为什么我需要在Android中使用super()?

  20. 20

    为什么在 Android Studio 中使用 Firebase 数据库时 onClick 中的“If Condition”不起作用?

  21. 21

    当我在 Android Studio 3.1.1 中使用约束时,为什么两个 TextView 位于 LinearLayout 的中心?

  22. 22

    为什么安全导航比在Rails中使用try更好?

  23. 23

    为什么按规则使用无法在Sass中使用?

  24. 24

    折叠式导航无法使用边距-为什么?

  25. 25

    为什么在使用Fullpage.js时导航不垂直?

  26. 26

    为什么我无法在MySQL中使用“>”比较日期?

  27. 27

    为什么SUB命令无法在xiki中使用cd命令?

  28. 28

    为什么我的背景色无法在ComboBox中使用

  29. 29

    为什么在Mockito中使用doReturn无法获得价值

热门标签

归档