我还在学习安卓,我正在用这个recommendation创建一个混合应用。一切正常,但当我下载完一个文件我不能返回,我试图使用copyBackForwardList方法,但我不确定如何将Xamarin.Forms.WebView转换为Android.Webkit.WebView以使用CopyBackForwardList和使用其他recommendation
我正在尝试这样的东西
protected override bool OnBackButtonPressed()
{
base.OnBackButtonPressed();
String historyUrl = "";
int i = 0;
WebBackForwardList mWebBackForwardList = (Android.Webkit.WebView)browser;
if (mWebBackForwardList.getCurrentIndex() > 0)
{
while (i < mWebBackForwardList.getCurrentIndex())
{
historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex() - ++i).getUrl();
if (historyUrl != null)
{
browser.Source = historyUrl;
Content = browser;
}
}
}
return true;
}发布于 2019-11-30 02:38:35
如果您想访问本机控件,可以通过自定义渲染器https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/来完成
发布于 2019-12-03 13:23:06
你有没有想过这可能是一个与Android的活动生命周期相关的问题?一旦您在下载文件后提到了问题,并且从您提供的参考资料中-通过下载文件,包含WebView的活动就不再是前台活动。因此,我建议使用以下代码(很抱歉在这里使用Java ):
// ...
private WebView browser;
private Bundle bundle;
@Override
public void onCreate(final Bundle savedInstanceState)
{
// ...
if (bundle != null)
{
browser.restoreState(bundle);
}
else
{
browser.loadUrl("https://stackoverflow.com"); // e.g.
}
// ...
}
@Override
public void onPause()
{
super.onPause();
bundle = new Bundle();
browser.saveState(bundle);
}
// ...此代码的用途是在主活动退出前台时,通过将其状态保存在WebView (捆绑)对象中来保存捆绑对象(浏览器)状态。
https://stackoverflow.com/questions/59107967
复制相似问题