【问题标题】:Open link in WebView when tapping a navigation drawer item点击导航抽屉项目时在 WebView 中打开链接
【发布时间】:2022-01-16 16:33:30
【问题描述】:

按照教程here 创建导航抽屉并且工作正常。 webview 也会在应用启动时加载。

我的着陆页在应用启动时加载:

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    myWebView = findViewById(R.id.activity_main_webview);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.setWebChromeClient(new WebChromeClient());
    myWebView.loadUrl("http://192.168.43.105/public_html/central/updates.php");
    myWebView.setWebViewClient(new WebViewClient());}

选择导航项时应打开 URL:

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.nav_search) {
            myWebView.loadUrl("http://192.168.43.105/public_html/central/search.php");
            return true;
        }
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
              //return super.onOptionsItemSelected(item);
        }
        return super.onOptionsItemSelected(item);
    }

抽屉项目位于 res>menu>navigation_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      tools:ignore="HardcodedText">

      <item
         android:id="@+id/nav_search"
         android:title="Search" />
</menu>

试过了:

String url = "http://192.168.43.105/public_html/central/search.php";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

然后从 developer.android.com 关注这个:

    switch (item.getItemId()) {
    case R.id.nav_search:
    String url="http://192.168.43.105/public_html/central/search.php";
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl(url);
        return true;
    default:
        return super.onOptionsItemSelected(item);
}

启动应用程序时我没有收到任何错误。任何帮助将不胜感激!

【问题讨论】:

    标签: android-studio webview navigation navigation-drawer


    【解决方案1】:

    对于外部 URL 试试这个:

    Uri uri = Uri.parse("https://www.google.com");
    startActivity(new Intent(Intent.ACTION_VIEW, uri));
    

    如果你想在你的活动中打开网络浏览器,试试这个:

    WebView webView = (WebView) findViewById(R.id.webView1);
    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    webView.loadUrl(URL);
    

    如果您想在浏览器中使用缩放控件,请同时添加:

    settings.setSupportZoom(true);
    settings.setBuiltInZoomControls(true);
    

    【讨论】:

    • 尝试了您的建议,但链接仍未打开。我在帖子上添加并编辑了一些行。我也尝试删除 onCreate 上的 url 但仍然无法正常工作。
    • 您的初始更新 URL 加载成功了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2013-07-04
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多