在一个 Android WebView 中显示两个 WebViewClientDisplay two WebViewClients in one Android WebView

Display two WebViewClients in one Android WebView

提问人:Matin Javid 提问时间:11/12/2023 更新时间:11/12/2023 访问量:21

问:

我正在制作一个 Android 网页视图。 我的问题是我想在 webview 和 activity 中同时显示两段代码,但其中只有一段有效。

代码 1:

p_webview.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView p_view,WebResourceRequest p_wrr,WebResourceError p_wre){
super.onReceivedError(p_view,p_wrr,p_wre);
p_webview.loadUrl("file:///android_asset/error.html");
}});

代码 2:

p_webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView p_view,WebResourceRequest p_wrr){
p_intent_browser=new Intent(Intent.ACTION_VIEW,p_wrr.getUrl());
p_view.getContext().startActivity(p_intent_browser);
return true;
}});

您可以在下面看到我的原始代码: MainActivity.java:

package com.app;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity{
public WebView p_webview;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_majn);



p_webview=(WebView)findViewById(R.id.p_webview_proxy);
p_webview.setWebViewClient(new WebViewClient());
p_webview.getSettings().setJavaScriptEnabled(true);
p_webview.loadUrl("file:///android_asset/index.html");



p_webview.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView p_view,WebResourceRequest p_wrr,WebResourceError p_wre){
super.onReceivedError(p_view,p_wrr,p_wre);
p_webview.loadUrl("file:///android_asset/error.html");
}});



p_webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView p_view,WebResourceRequest p_wrr){
Intent p_intent_browser=new Intent(Intent.ACTION_VIEW,p_wrr.getUrl());
p_view.getContext().startActivity(p_intent_browser);
return true;
}});



    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

</LinearLayout>

谢谢!

java android webview webviewclient

评论


答: 暂无答案