我有一个WebView
加载URL https://pro.mywellness.com。这工作正常,但导航到登录页面时,登录表单不会出现 - https://pro.mywellness.com/Login除了页眉和页脚之外,它几乎只是一个空白页面。
我已在清单中启用了互联网,并在活动中启用了javascript。我不知道是什么导致表单无法显示,因为它在普通浏览器中工作正常。任何人都可以提供任何帮助将不胜感激。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import java.util.concurrent.atomic.AtomicBoolean;
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.activity_main_webview);
//Obtain the WebSettings object//
WebSettings webSettings = mWebView.getSettings();
//Call setJavaScriptEnabled(true)//
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("https://pro.mywellness.com");
// Stop local links and redirects from opening in browser instead of WebView
mWebView.setWebViewClient(new MyWebView());
}
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
return;
}
// Otherwise defer to system default behavior.
super.onBackPressed();
}
}
MyWebView()方法:
import android.net.Uri;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MyWebView extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return !Uri.parse(url).getHost().endsWith("pro.mywellness.com");
}
}
只需在loadurl之前在代码中添加以下行: -
WebSettings webSettings = mWebView.getSettings();
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("https://pro.mywellness.com/Login");
它会工作。 :)