Android webview 不加载主页但加载所有其他页面
Posted
技术标签:
【中文标题】Android webview 不加载主页但加载所有其他页面【英文标题】:Android webview doesn't load homepage but load all other pages 【发布时间】:2021-12-02 06:13:04 【问题描述】:android webview 不加载主页,但加载所有其他页面!奇怪的是,当我从应用程序的原始站点菜单中单击主页时,它会正确加载主页而没有任何问题,但是如果我尝试从顶部导航菜单中单击它,它根本不会加载!
package com.example.couponcheetah;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewController extends WebViewClient
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
view.getSettings().setjavascriptEnabled(true);
view.getSettings().setDomStorageEnabled(true);
view.getSettings().setSupportZoom(false);
view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
// hide element by id
view.loadUrl("javascript:(function() " +
"document.getElementById('site-navigation').style.display='none';)()");
view.loadUrl(url);
return true;
这是家庭片段:
package com.example.couponcheetah.ui.home;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.example.couponcheetah.WebViewController;
import com.example.couponcheetah.R;
public class HomeFragment extends Fragment
private HomeViewModel homeViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState)
homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
WebView webView=root.findViewById(R.id.web_view_home);
webView.loadUrl("https://couponcheetah.com");
webView.setWebViewClient(new WebViewController());
return root;
【问题讨论】:
【参考方案1】:如果我正确理解您的问题 尝试将您的代码放在 onstart 而不是 oncreateView as
public class HomeFragment extends Fragment
private HomeViewModel homeViewModel;
private WebView webView;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState)
homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
webView=root.findViewById(R.id.web_view_home);
return root;
// impelment funcation onStart and put your code
webView.loadUrl("https://couponcheetah.com");
webView.setWebViewClient(new WebViewController());
【讨论】:
以上是关于Android webview 不加载主页但加载所有其他页面的主要内容,如果未能解决你的问题,请参考以下文章
Android WebView 不加载页面而不附加到 xml
android中webview 怎么实现网页加载时显示加载进度?
android中webview 怎么实现网页加载时显示加载进度
android中webview 怎么实现网页加载时显示加载进度