我有两个问题需要解决,我正在尝试在我的 Android 应用程序的 webview 中加载一个网站,该网站在正常打开的 webview 中工作,但开始出现问题
该网站有一个注册表单,当注册结束时,它会重定向到同一域中的另一个页面...
点击注册按钮并注册结束后,Webview没有重定向,出现注册成功但没有重定向的警告。
这会产生第二个问题,如果您需要应用程序将我重定向到主应用程序 View 的这个词,我需要获取重定向的链接以检查它是否包含“finalcadast”一词。
有人可以帮助我吗?已经非常感谢你了。
这是我的 Activity WebView 的代码
public class cadastro extends AppCompatActivity {
private WebView wv;
private String urlEmCurso;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastro);
wv = (WebView) findViewById(R.id.webView_cadastro);
WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
//settings.setBuiltInZoomControls(true);
//settings.setSupportZoom(true);
wv.requestFocusFromTouch();
wv.setWebChromeClient(new WebChromeClient());
//Isso desabilita o Toolbar nativo do WebView
progressDialog = ProgressDialog.show(this, "", "Carregando formulário de cadastro , aguarde...");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlinterna) {
//urlinterna = "https://onneti.net/melleven/cad.html";
Log.i("URL", "getUrl: " + view.getUrl());
Log.i("URL", urlinterna);
urlEmCurso = urlinterna;
//Para redirecionar para Activity de cadastro
if (urlEmCurso.contains("noSession")) {
Intent intent = new Intent(getApplication(), MainActivity.class);
//intent.putExtra("url", urlEmCurso);
startActivity(intent);
}
progressDialog.show();
wv.loadUrl(urlinterna);
return false;
}
@Override
public void onPageFinished(WebView view, String url){
if(progressDialog.isShowing()){
progressDialog.dismiss();
}
}
});
wv.loadUrl("https://onneti.net/melleven/cad.html");
}
}
这是我的网页重定向代码,计算机工作正常,但 webview 不起作用。
$.ajax({
type : 'POST',
data : formula,
url : 'https://onneti.net/melleve/j.php',
success : function(data){
if(data == '' || data == 0){
alert('Cadastro realizado com sucesso');
location.replace("https://onneti.net/melleve/finalcad.html?cadastro=finalcadast")
//$state.go('app.lg');
}
if(data == 1){
alert('E-mail já cadastro, por favor escolha outro e-mail ou se esqueceu sua senha clique em "ESQUECI MINHA SENHA"');
}
}
})
最佳答案
尝试这样
@覆盖
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastro);
wv = (WebView) findViewById(R.id.webView_cadastro);
WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
wv.requestFocusFromTouch();
wv.setWebChromeClient(new WebChromeClient());
wv.loadUrl("https://onneti.net/melleven/cad.html");
progressDialog = ProgressDialog.show(this, "", "Carregando formulário de cadastro , aguarde...");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlinterna) {
urlEmCurso = urlinterna;
if (urlEmCurso.contains("noSession")) {
finish();
startActivity(getIntent());
}
else {view.loadUrl(url); // Stay within this webview and load url
return true;}}});
}
@Override
public void onPageFinished(WebView view, String url){
if(progressDialog.isShowing()){
progressDialog.dismiss();
}
super.onPageFinished(view, url);
}
});
}
关于java - Android WebView 不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36622352/