gpt4 book ai didi

Android WebView 不维护历史记录

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:41 24 4
gpt4 key购买 nike

我在 Fragment 中有一个 webview,当我单击一个链接时,它会转到下一页,但是单击后退按钮不会使我返回到上一页。当我检查 canGoBack 时,它总是错误的。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
gameDetailsActivity = (GameDetailsActivity)getActivity();

Bundle args = getArguments();
int type = args.getInt(ARG_OBJECT);
View rootView = null;

rootView = inflater.inflate(R.layout.gamedetailswebview,
container, false);

wv = (WebView) rootView.findViewById(R.id.WebViewGameDetails);

wv.setWebViewClient(new WebViewClient());
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setDomStorageEnabled(true);

switch (type)
{
case 1:
wv.loadUrl(gameDetailsActivity.gameSummaryURL);
break;
case 2:
wv.loadUrl(gameDetailsActivity.gameReportURL);
break;
}

return rootView;
}

public boolean GoBack()
{
if (wv.canGoBack())
{
wv.goBack();
return true;
}

return false;
}

@Override
public void onBackPressed()
{
int currentFragmentIndex = gameDetailsViewPager.getCurrentItem();

if (currentFragmentIndex > 0)
{
Fragment webview = gameDetailsPagerAdapter
.getItem(currentFragmentIndex);
if (webview instanceof GameDetailsWebViewFragment)
{
if (!((GameDetailsWebViewFragment) webview).GoBack())
{
super.onBackPressed();
}
}
}
}

最佳答案

我认为不是 wv.setWebViewClient(new WebViewClient())你应该扩展 WebViewClient,覆盖 shouldOverrideUrlLoading(),像这样

        @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

关于Android WebView 不维护历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com