【发布时间】: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;
}
}
【问题讨论】: