旋转无法正常工作 - webview

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转无法正常工作 - webview相关的知识,希望对你有一定的参考价值。

我在android文档指南开发人员之后创建了代码,但是代码显然是正确的但是转动移动屏幕它的行为方式不应该是旋转屏幕并继续处于相同的状态,而当他们反而回来时到主页。有什么不对吗?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i(TAG,"onCreate");
    wv = (WebView) findViewById(R.id.webView1);
    wv.getSettings().setjavascriptEnabled(true);
    wv.loadUrl("http://www.uol.com.br");
}


@Override
protected void onStart(){
    super.onStart();
    Log.i(TAG, "onStart");
}
@Override
protected void onRestart(){
    super.onRestart();
    Log.i(TAG, "onRestart");
}
@Override
protected void onPause(){
    super.onPause();
    Log.i(TAG, "onPause");
}
@Override
protected void onResume(){
    super.onResume();
    Log.i(TAG, "onResume");
}
@Override
protected void onDestroy(){
    super.onDestroy();
    Log.i(TAG, "onDestroy");
}
@Override
protected void onStop(){
    super.onStop();
    Log.i(TAG, "onStop");
}

@Override
protected void onSaveInstanceState(Bundle outState){
    super.onSaveInstanceState(outState);
    wv.saveState(outState);
    Log.i(TAG,"onSaveInstanceState");
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
    super.onRestoreInstanceState(savedInstanceState);
    wv.restoreState(savedInstanceState);
    Log.i(TAG,"onRestoreInstanceState");
}
答案

当我运行你的代码时,似乎工作得很好。您正在正确保存和恢复Webview状态,因此webview会在轮换之前正确选择用户所在的位置。

但有一件事,点击你加载的网页上的任何链接都将在默认浏览器中打开,而不是你的应用程序。也许这与您所看到的问题有关?

将此添加到您的onCreate()以允许在您的应用中打开页面:

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

以上是关于旋转无法正常工作 - webview的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Android webView显示空白页面

WebView qml 在 iOS 11 上无法正常工作

使硬币减速旋转的代码无法正常工作

WebView 的方向 - Monotouch

旋转车轮时负角无法正常工作

glm 旋转无法正常工作