尝试在 android 网络视图中使用 url 加载 cookie
Trying to load cookies with url in android webview
我正在尝试在 android 网络视图中加载 cookie。以下是我的 java 代码。
final String link = "http://www.iitjeeacademy.com/mobile/question/CHE/AAH";
final String domain = "iitjeeacademy.com";
String authToken = LoginService.getCookie();
String cookie = "auth-token=" + authToken + "; csrf-token=mobile";
webView = (WebView) findViewById(R.id.webView);
Map<String, String> cookieMap = new HashMap<String, String>();
cookieMap.put("Cookie", cookie);
android.webkit.CookieSyncManager.createInstance(QuestionActivity.this);
android.webkit.CookieManager.getInstance().setAcceptCookie(true);
WebkitCookieManagerProxy coreCookieManager = new WebkitCookieManagerProxy(null, java.net.CookiePolicy.ACCEPT_ALL);
java.net.CookieHandler.setDefault(coreCookieManager);
android.webkit.CookieSyncManager.getInstance().sync();
final WebSettings settings = webView.getSettings();
settings.setLoadsImagesAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
webView.setWebViewClient(new CustomBrowser());
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(link, cookieMap);
private class CustomBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
}
网页视图layout.xml
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
我尝试为自定义 cookie 存储实现 WebkitCookieManagerProxy,如 -> .
所示
但它不起作用。当我 运行 这段代码时,在网络视图中我被重定向到站点的索引页面...
WebView webview = (WebView) this.findViewById(R.id.webView);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
CookieSyncManager.createInstance(YourClass.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
cookieManager.setCookie("your domain name", cookie);
CookieSyncManager.getInstance().sync();
Map<String, String> header = new HashMap<String, String>();
header.put("Cookie", cookie);
if(isConnected()) {
webview.loadUrl(url, header);
}
else {
webview.setVisibility(View.GONE);
textView.setText("Your custom error message.");
textView.setVisibility(View.VISIBLE);
}
**这可能有帮助**
WebView webview = (WebView) this.findViewById(R.id.wv_file);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
CookieSyncManager.createInstance(ActivityName.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
String cookieString = "param=value";
cookieManager.setCookie(domain_of_url("domain name"), cookieString);
CookieSyncManager.getInstance().sync();
Map<String, String> abc = new HashMap<String, String>();
abc.put("Cookie", cookieString);
webview.loadUrl("domain name",
abc);
你能得到解决方案吗
还要仔细阅读这个 link 以获得正确的想法 Android WebView Cookie Problem
或者你也可以按照这些问题做
Using session cookies with android
和
Using cookies with Android
我正在尝试在 android 网络视图中加载 cookie。以下是我的 java 代码。
final String link = "http://www.iitjeeacademy.com/mobile/question/CHE/AAH";
final String domain = "iitjeeacademy.com";
String authToken = LoginService.getCookie();
String cookie = "auth-token=" + authToken + "; csrf-token=mobile";
webView = (WebView) findViewById(R.id.webView);
Map<String, String> cookieMap = new HashMap<String, String>();
cookieMap.put("Cookie", cookie);
android.webkit.CookieSyncManager.createInstance(QuestionActivity.this);
android.webkit.CookieManager.getInstance().setAcceptCookie(true);
WebkitCookieManagerProxy coreCookieManager = new WebkitCookieManagerProxy(null, java.net.CookiePolicy.ACCEPT_ALL);
java.net.CookieHandler.setDefault(coreCookieManager);
android.webkit.CookieSyncManager.getInstance().sync();
final WebSettings settings = webView.getSettings();
settings.setLoadsImagesAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
webView.setWebViewClient(new CustomBrowser());
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(link, cookieMap);
private class CustomBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
}
网页视图layout.xml
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
我尝试为自定义 cookie 存储实现 WebkitCookieManagerProxy,如 -> .
所示但它不起作用。当我 运行 这段代码时,在网络视图中我被重定向到站点的索引页面...
WebView webview = (WebView) this.findViewById(R.id.webView);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
CookieSyncManager.createInstance(YourClass.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
cookieManager.setCookie("your domain name", cookie);
CookieSyncManager.getInstance().sync();
Map<String, String> header = new HashMap<String, String>();
header.put("Cookie", cookie);
if(isConnected()) {
webview.loadUrl(url, header);
}
else {
webview.setVisibility(View.GONE);
textView.setText("Your custom error message.");
textView.setVisibility(View.VISIBLE);
}
**这可能有帮助**
WebView webview = (WebView) this.findViewById(R.id.wv_file);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
CookieSyncManager.createInstance(ActivityName.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
String cookieString = "param=value";
cookieManager.setCookie(domain_of_url("domain name"), cookieString);
CookieSyncManager.getInstance().sync();
Map<String, String> abc = new HashMap<String, String>();
abc.put("Cookie", cookieString);
webview.loadUrl("domain name",
abc);
你能得到解决方案吗
还要仔细阅读这个 link 以获得正确的想法 Android WebView Cookie Problem
或者你也可以按照这些问题做 Using session cookies with android
和
Using cookies with Android