بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در لاگین کاربر در WebView
با سلام
وقت همه دوستان بخیر
من از این کد برای ارسال پارامترهای لاگین به WebView استفاده می کنم
String url = "http://www.example.com/login.php";
String data = "username=MyUserName&password=MyPassword";
WebView.postUrl(url, EncodingUtils.getBytes(data, "base64"));
جالب -اینجا-ست که WebView صفحه رو باز می کنه اما کاربر لاگین نیست
نام کاربری و کلمه عبور هم صحیحه
!!!
این هم جواب نمی ده
webView.loadData(G.webConfigs.loginResult, "text/html", "UTF-8");
البته با انجام تغییرات باز هم جواب نداد
0
0
سمت سرور با php که میگیرید decode با همین کلید میکنید ؟ (12 سال پیش)
0
0
به صورت کد نشده هم میفرستید وصل نمیشه ؟ (12 سال پیش)
0
0
کد نشده هم می فرستم وصل نمی شه (12 سال پیش)
0
0
دوستان، برای این که Encryption رو md5 کنم باید چکار کنم؟ (12 سال پیش)
0
0
یعنی یوزرنیم و پسورد به صورت md5 ارسال بشه؟! (12 سال پیش)
0
0
md5 برای یوزر معمولا استفاده نمیشه (البته مشکلی هم نداره) و برای پسورد میتونه استفاده بشه و شما سمت سرور مقدار گرفته شده را با md5 پسورد ( در صورت ذخیره کردن اصل پسورد ) و یا با فیلد پسورد که قبلا mp5 شده چک میکنید. خوبه از salt هم در دیتابیس استفاده کنید (12 سال پیش)
0
0
سمت سرور یا سمت App ؟ من سمت App رو می گم چکار کنم! (12 سال پیش)
0
0
اگر مشکل حل شد تجربیاتتون را با دوستان به اشتراک بذارید ممنون میشیم (12 سال پیش)
برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال
iSheykhi
12 سال پیش
0
0
لاس CookiesHelper رو| بر اساس این لینک به این مقدار تغییر دادم
package com.example.app.projectname.helpers;
import java.util.List;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.example.app.projectname.globals.G;
public class CookiesHelper {
private WebView webView;
private DefaultHttpClient httpClient;
public static Cookie cookie = null;
public CookiesHelper(WebView webView) {
this.webView = webView;
}
public void set() {
CookieSyncManager.createInstance(webView.getContext());
CookieManager cookieManager = CookieManager.getInstance();
//After Login
List<Cookie> cookies = httpClient.getCookieStore().getCookies(); // Error Line
for (int i = 0; i < cookies.size(); i++) {
cookie = cookies.get(i);
}
Cookie sessionCookie = cookie;
if (sessionCookie != null) {
cookieManager.removeSessionCookie();
String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
cookieManager.setCookie(G.webConfigs.cookiesDomain, cookieString);
CookieSyncManager.getInstance().sync();
}
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(G.webConfigs.IndexUrl);
}
}
خط خطا رو هم مشخص کردم
به اون خط ایراد می گیره
این هم عنوان خطا
07-06 09:32:42.627: E/AndroidRuntime(26437): FATAL EXCEPTION: main
07-06 09:32:42.627: E/AndroidRuntime(26437): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.emaarit.app.nozadam/com.emaarit.app.nozadam.activities.WebViewActivity}: java.lang.NullPointerException
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread.access$600(ActivityThread.java:128)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.os.Looper.loop(Looper.java:137)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread.main(ActivityThread.java:4514)
07-06 09:32:42.627: E/AndroidRuntime(26437): at java.lang.reflect.Method.invokeNative(Native Method)
07-06 09:32:42.627: E/AndroidRuntime(26437): at java.lang.reflect.Method.invoke(Method.java:511)
07-06 09:32:42.627: E/AndroidRuntime(26437): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
07-06 09:32:42.627: E/AndroidRuntime(26437): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
07-06 09:32:42.627: E/AndroidRuntime(26437): at dalvik.system.NativeStart.main(Native Method)
07-06 09:32:42.627: E/AndroidRuntime(26437): Caused by: java.lang.NullPointerException
07-06 09:32:42.627: E/AndroidRuntime(26437): at com.emaarit.app.nozadam.helpers.CookiesHelper.set(CookiesHelper.java:35)
07-06 09:32:42.627: E/AndroidRuntime(26437): at com.emaarit.app.nozadam.activities.WebViewActivity.setCommand(WebViewActivity.java:38)
07-06 09:32:42.627: E/AndroidRuntime(26437): at com.emaarit.app.nozadam.activities.WebViewActivity.onCreate(WebViewActivity.java:29)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.Activity.performCreate(Activity.java:4465)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
07-06 09:32:42.627: E/AndroidRuntime(26437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
07-06 09:32:42.627: E/AndroidRuntime(26437): ... 11 more
خط خزا رو به این تغییر دادم
List<Cookie> cookies = WebServiceHelper.cookieStore.getCookies();
خطا نمی ده اما لاگین هم نمی کنه
پاسخ به سوال
iSheykhi
12 سال پیش
0
0
خواستم از این کد هم استفاده کنم که بر اساس این لینک هست
public class WebViewTask extends AsyncTask<Void, Void, Boolean> {
private String sessionCookie;
private CookieManager cookieManager;
private WebView webView;
public WebViewTask(WebView webView) {
this.webView = webView;
}
@Override
protected void onPreExecute() {
CookieSyncManager.createInstance(webView.getContext());
cookieManager = CookieManager.getInstance();
sessionCookie = PersistentConfig(G.configs.context).getCookieString(); // Problem
if (sessionCookie != null) {
/* delete old cookies */
cookieManager.removeSessionCookie();
}
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Void... param) {
/* this is very important - THIS IS THE HACK */
SystemClock.sleep(1000);
return false;
}
@Override
protected void onPostExecute(Boolean result) {
if (sessionCookie != null) {
cookieManager.setCookie("yourdomain.com", sessionCookie);
CookieSyncManager.getInstance().sync();
}
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
webView.loadUrl(G.webConfigs.IndexUrl);
}
}
اما جایی رو که به عنوان problem کامنت گذاشتم نمی شناسه
اندروید 2.2
پاسخ به سوال
MiRHaDi
12 سال پیش
+2
0
برای ساخت md5 در اندروید از کد زیر استفاده نمایید
public static final String md5(final String s) {
final String MD5 = "MD5";
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance(MD5);
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuilder hexString = new StringBuilder();
for (byte aMessageDigest : messageDigest) {
String h = Integer.toHexString(0xFF & aMessageDigest);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
پاسخ به سوال
iSheykhi
12 سال پیش
+1
0
آیا برای کاراکتر های UTF-8 مشکلی پیش نمی آد؟=
این کد رو برای UTF-8 گیر آوردم
private static String convertToMd5(final String md5) throws UnsupportedEncodingException {
StringBuffer sb=null;
try {
final java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
final byte[] array = md.digest(md5.getBytes("UTF-8"));
sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
}
return sb.toString();
} catch (final java.security.NoSuchAlgorithmException e) {
}
return sb.toString();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .