我是 Android Web 视图开发的初学者。我应该怎么做才能保留cookie?
我是 Android Web 视图开发的初学者。我应该怎么做才能保留cookie? 我想使用Android WebView 实现php 主页。大部分功能已经实现了,但是不知道存储id和pw的cookie怎么办 应该如何在哪些领域实施?请教我。
在我的 mainactivity.java 代码中
package com.example.webviewexample;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.CookieManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView webView;
private String url = "http://www.test.com/user/login.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClientClass());
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
@Override
public void onBackPressed() {
if (webView.getUrl().equalsIgnoreCase("http://www.test.com/index.php") || webView.getUrl().equalsIgnoreCase("http://www.test.com/user/login.php")) {
new AlertDialog.Builder(this)
.setTitle("exit")
.setMessage("exit?")
.setPositiveButton("finish", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
moveTaskToBack(true);
finish();
android.os.Process.killProcess(android.os.Process.myPid());
}
})
.setNegativeButton("no",null)
.show();
}else if(webView.canGoBack()){
webView.goBack();
}else{
super.onBackPressed();
}
}
private class WebViewClientClass extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
I'm a beginner in Android web view development. What should I do to keep the cookies?
I would like to implement the php homepage using Android WebView. Most of the features have been implemented, but I don't know what to do with cookies that store id and pw
How should I implement it in what areas? Please teach me.
in this my mainactivity.java code
package com.example.webviewexample;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.CookieManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView webView;
private String url = "http://www.test.com/user/login.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClientClass());
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
@Override
public void onBackPressed() {
if (webView.getUrl().equalsIgnoreCase("http://www.test.com/index.php") || webView.getUrl().equalsIgnoreCase("http://www.test.com/user/login.php")) {
new AlertDialog.Builder(this)
.setTitle("exit")
.setMessage("exit?")
.setPositiveButton("finish", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
moveTaskToBack(true);
finish();
android.os.Process.killProcess(android.os.Process.myPid());
}
})
.setNegativeButton("no",null)
.show();
}else if(webView.canGoBack()){
webView.goBack();
}else{
super.onBackPressed();
}
}
private class WebViewClientClass extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要保留 cookie,您可以使用以下方法:
您可以通过这种方式从 Webview 作为字符串提取当前 url 中的所有 cookie:
To keep cookies, you can use below:
You can extract all cookies from current url by this way from Webview as string: