android - WebView 重定向问题 (Android)
问题描述
我使用 Android studio webview 为我的 web 应用程序(php 和 mysql)生成 .apk 文件。
问题是一旦会话存在,我希望用户被重定向到另一个页面(不同于 webview loadurl),否则加载 webview url 并强制用户登录。
但是,重定向不起作用。它仍然会打开 webview Loadurl。但这在网络应用程序中运行良好。
这是我的 MainActivity.java 代码
package com.bykemessengerscustomer;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mywebView=(WebView) findViewById(R.id.webview);
mywebView.setWebViewClient(new WebViewClient());
mywebView.loadUrl("https://www.bykemessengers.com/pages/customers_splashscreen/");
WebSettings webSettings=mywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mywebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView webView, int errorCode, String description, String failingUrl) {
try {
webView.stopLoading();
} catch (Exception e) {
}
if (webView.canGoBack()) {
webView.goBack();
}
webView.loadUrl("about:blank");
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("Check your internet connection and try again.");
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Try Again", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
});
alertDialog.show();
super.onReceivedError(webView, errorCode, description, failingUrl);
}
});
}
public class mywebClient extends WebViewClient{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){
super.onPageStarted(view,url,favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
}
@Override
public void onBackPressed(){
if(mywebView.canGoBack()) {
mywebView.goBack();
}
else{
super.onBackPressed();
}
}
}
解决方案
推荐阅读
- javascript - 在 node js 中使用 promise.all 进行外部 api 调用
- javascript - 如何自定义此复选框在页面刷新后保持选中状态
- ruby-on-rails - Ruby 生成的 grpc 类服务名冲突
- java - 如何通过将其中一个值切换为键来创建 HashMap 的 HashMap
- html5-canvas - KonjaJs 使用 toDataUrl 保存背景图像
- r - 有没有办法过滤数据框以将与另一个数据框中的值匹配的值保留?
- java - How to Deserialize unknown primitive json property type using Gson
- batch-file - 有没有办法用批处理启动命令提示符,然后在该命令窗口中运行多个命令?
- java - 在读取 txt 文件时从 1D 数组制作 2D 数组
- vba - 将附件字段文件路径提取到不同的列