Android WebView 不重定向
Android WebView not redirect
我有 2 个问题是 interia dawn 需要解决,我正在尝试在我的 android 应用程序的 webview 中加载一个站点,该站点在它正常打开的 webview 中正常工作,但开始出现问题
此站点有注册表单,当注册结束时,它会重定向到同一域中的另一个页面...
Webview在点击注册按钮和terminar注册后没有重定向,出现注册成功但没有重定向的警告。
这会产生第二个问题,我需要获取重定向的 link 以检查它是否包含单词 "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"');
}
}
})
像这样尝试
@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);
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);
}
});
}
我有 2 个问题是 interia dawn 需要解决,我正在尝试在我的 android 应用程序的 webview 中加载一个站点,该站点在它正常打开的 webview 中正常工作,但开始出现问题
此站点有注册表单,当注册结束时,它会重定向到同一域中的另一个页面...
Webview在点击注册按钮和terminar注册后没有重定向,出现注册成功但没有重定向的警告。
这会产生第二个问题,我需要获取重定向的 link 以检查它是否包含单词 "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"');
}
}
})
像这样尝试
@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);
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);
}
});
}