آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در لاگین کاربر در WebView

iSheykhi  12 سال پیش  12 سال پیش
0 0

با سلام

وقت همه دوستان بخیر

من از این کد برای ارسال پارامترهای لاگین به 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

0 0
باز هم جواب نداد (12 سال پیش)
پاسخ به سوال 
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 "";
}
0 0
باتشکر (12 سال پیش)
پاسخ به سوال 
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();
}

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .