سایر مقالات این دسته
تاریخچه و خصوصیات اندرویداجزای تشکیل دهنده سیستم عامل اندرویدآشنایی با API های اندرویدایجاد،ساخت و اجرای اولین برنامه اندرویدیکار با دکمه ها در اندرویدکار با تکست باکس ها در اندرویدکار با تکست ویو در اندرویدکار با گرید ویو در اندرویدکار با وب ویو در اندرویدکار با اسکرول ویو در اندرویدکار با اسکرول ویو افقیکار با الرت دیالوگ (AlertDialog)در اندرویدکار با ایمیج باتن(Image Button) در اندرویدکار با توگل باتنکار با چک باکس (Checkbox) در اندرویدکار با الرت دیالوگ (AlertDialog)در اندروید قسمت دوکار با ریتینگ بار(Rating bar) در اندرویدرفتن از یک اکتویتی به اکتویتی دیگرکار با نوتیفیکیشن ها (Notifications )در اندرویدکار با صوت در برنامه نویسی اندرویدکار با ویبره(Vibrator) در اندرویدکار با دوربین در اندرویدکار با دوربین در اندرویدکار با ویدیو ویو (VideoView)در اندرویدکار با شبکه وای فای (Wifi)در اندرویدکار با لیست ویو (ListView) در اندرویدکار با سیک بار (SeekBar) در اندرویدکار با دکمه بازگشت در اندرویدکار با AutoCompleteTextView در اندرویدتغییر فونت در اندرویدکار با لایه TableLayout در اندرویدکار با لیست کشویی (Spinner) در اندرویدکار با CalendarView در اندرویدساخت شمارنده در اندرویدکار با title bar در اندرویدکار با منو (Menu)در اندرویدکار با لیست ویو (Listview) قسمت دومطراحی رابط کاربری در اندروید قسمت اولطراحی رابط کاربری در اندروید قسمت دوم(طراحی گرد)کار با استایل در اندرویدکار با لایه AbsoluteLayout در اندرویدطراحی رابط کاربری در اندروید کار با gradientکار با کلیپ بورد(ClipBoard)در اندروید کار با مولتی تاچ(Multitouch ) در اندروید+سورس کدکار با OnLongClick در اندرویدکار با منوی زمینه (ContextMenu ) در اندرویدکار با حرکات (Gesture) در اندرویدکار با (AudioCapture) در اندروید+سورس کدکار با موتور Speech در اندروید + سورسکار با PhoneCall در اندرویدساخت لیست ویو سفارشی در اندروید+سورسساخت Toastسفارشی در اندرویدانتقال برنامه به حافظه sdکار با TextWatcher در اندروید+سورستغییر رنگ محیط Eclipse طراحی رابط کاربری در اندروید کار با Canvasساخت اکشن بار سفارشی در اندروید+سورسساخت الرت دیالوگ سفارشی در اندرویدساخت برنامه نمایش مقدار شارژ باتری در اندرویدایجاد افکت رنگی بروی تصاویر در اندروید+سورسساخت آپشن منوی سفارشی در اندروید+سورسساخت دکمه سه بعدی با Selectorسخنان بزرگان برنامه نويسيوارد كردن پروژه در محيط ايكليپساضافه کردن switch,case به لیست ویوبارش برف بروی تصویر + سورسکار با فیلتر hue رنگی کردن تصویر انتخاب و پخش فایل صوتی از حافظه گوشی+سورساضافه کردن چک باکس به لیست ویوکار با ShelfView یا نمایش کتابخانه ای + سورسکار با TabHost،اضافه کردن تب به برنامه های اندرویدآموزش کامل ساخت اکشن بار سفارشی+سورسساخت برنامه های واکنش گرا(ریسپانسیو) در اندرویدقسمت دوم صفحات 7 اینچ به بالااضافه کردن انیمیشن به دکمه+سورسکار با View Switcher در اندروید + سورسکار با فیلتر Blur Mask + سورسدانلود پک کامل آیکون های طراحی اندرویدکار با sharedPreferences در اندروید+سورسآموزش کار با proguard،محافظت از برنامه اندرویدپخش فایل صوتی (MP3) از ادرس اینترنتی+سورسپخش ویدیو از آدرس اینترنتی(URL) در اندروید+سورسگوشی های و تبلت های مطرح تا چینی به ساده ترین روشپاسخ به رویداد های WebVeiw دسترسی به وب ویو با استفاده از جاوااسکریپتساخت ExpandableListView به ساده ترین شکل+سورسکار با WIFI اکسس+سورسساخت تقویم هجری برای اندروید+سورسapp rateدانلود و نمایش تصویر در ListView+سورسدانلود و نمایش فایل متنی+سورسکار با کلاس های پایه اکتیویتیآینه کردن تصویر+سورسافزودن آیتم منو سفارشی بهActionBar+سورسارسال اطلاعات از دیتابیس به GridView + سورسدسترسی به Api هایREST قسمت اولتغییر فونت لیست ویوفعال سازی و معرفی بخش های Android developer options بخش اول کار با JSON در اندرویدآموزش ساده نصب شبیه ساز اندروید Genymotion

حلقه های تکرار در ++C
1395/11/20

اکشن بار در زامارین
1395/11/13

معرفی وب سرویس ها در زامارین
1395/11/12

عملگرها در زبان ++C
1395/11/06

ایجاد آسان فرم ثبت نام با PHP/MySQL به صورت Ajax
1395/11/06

دسترسی به وب ویو با استفاده از جاوااسکریپت


رضا نقی لو 1394/12/01

به نام خدا،در ادامه دوره آموزش شبکه در برنامه نویسی اندروید،امروز می خواهیم با دسترسی و نمایش یک فایل خام HTML از طریق وب ویو آشنا شویم.در این آموزش ما یک فایل Html به نام Form را در داخل پوشه assets قرار داده و آن را با استفاده از WebView نمایش میدهیم.برای شروع کار یک پروژه جدید ایجاد و کدهای زیر رو بهش اضافه میکنم.دستور addJavascriptInterface یک شیء جاوا را به جاوااسکریپت می چسباند،که متدهای آن را می توان از WebView فراخوانی کرد.با داشتن این واسط،می توان از طریق جاوا اسکریپت داده ها را بین کد برنامه و Html مربوط به WebView ردوبدل کرد.

در داخل کد MainActivity از میان داده های موجود webview مقدار اختصاص یافته فرم که ID ان emailAddress می باشید برای ما مهم است.هرگاه روی لینک کلیک شود که در این آموزش گزینه Submit است،مقدار این عنصر درون shouldOverrideUrlLoading ذخیره می شود.هم چنین با اتمام بارگذاری صفحه،زمانی که onPageFinished فراخوانی شد مقدار ذخیره شده به فرم بازگردانده می شود.

یک کلاس جاوا به نام MyJavaScriptInterface ساخته ایم که در آن  متد storeElement را معرفی کردیم،زمانی که نما ساخته شود،متد webview.addJavascriptInterface به منظور چسباندن این شی به نما فراخوانی می گردد و نام BRIDGEنیز به آن اختصاص داده می شود.دو متد جاوا اسکریپت را در قالب دو مقدار ثابت رشته ای معرفی کرده ایم JS_SETELEMENT و JS_GETELEMENT.این دو متد روی webview و از طریق ارسال به LoadUrl اجرا می شوند.دقت داشته باشید که JS_GETELEMENT اشاره به همان متد storeElement دارد.اگر مقدار دریافت شده از فرم چیزی غیر از مقدار خالی بود آن مقدار توسط Toast اعلام میشود.هر متدی را میتوان به این شیوه بر Webview اعمال کرد.حتی لازم نیست آن مقدار بخشی از واسط باشد.مانند JS_SETELEMENT که به طور کامل از جاوا اسکریپت تشکیل شده است.

یک کاربرد های پرمصرف از این تکنیک،میتواند ذخیره داده های باشد که ممکن است کاربر به دفعات آن ها را وارد کند.اما فرم ها باید در قالب وب باشند زیرا دسترسی آن ها به API های سطح پایین بیشتر است.(کدهای کامل MainActivity).

 /*
* آموزش برنامه نویسی
* Appinapps.com
*/
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

@SuppressLint("JavascriptInterface")
public class MainActivity extends Activity {
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(mClient);
//اضافه کردن رابط نمایشی سفارشی
webview.addJavascriptInterface(new MyJavaScriptInterface(), "BRIDGE");

setContentView(webview);

webview.loadUrl("file:///android_asset/form.html");
}

private static final String JS_SETELEMENT =  "javascript:document.getElementById('%s').value='%s'";
private static final String JS_GETELEMENT = 
"javascript:window.BRIDGE.storeElement('%s',document.getElementById('%s').value)";
private static final String ELEMENTID = "emailAddress";

private WebViewClient mClient = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//تلاش برای بازیابی ایمیل با استفاده از جاوااسکریپت،قب از خروج
view.loadUrl(String.format(JS_GETELEMENT, ELEMENTID, ELEMENTID));
return false;
}

@Override
public void onPageFinished(WebView view, String url) {
//اضافهکردن آدرس به صفحه با استفاده از جاوااسکریپت در هنگام لود صفحه
SharedPreferences prefs = getPreferences(Activity.MODE_PRIVATE);
view.loadUrl(String.format(JS_SETELEMENT, ELEMENTID, prefs.getString(ELEMENTID,  "")));
}
};

private class MyJavaScriptInterface {
//Store an element in preferences
@SuppressWarnings("unused")
public void storeElement(String id, String element) {
SharedPreferences.Editor edit = getPreferences(Activity.MODE_PRIVATE).edit();
edit.putString(id, element);
edit.commit();
//نمایش توست هنگام صحیح بودن عناصر ورودی
if(!TextUtils.isEmpty(element)) {
Toast.makeText(MainActivity.this, element, Toast.LENGTH_SHORT).show();
}
}
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

 

عناوین دوره های رایگان آموزشی کار با شبکه و ارتباطات در برنامه نویسی اندروید:

1.پاسخ به رویداد های WebVeiw

2.دسترسی به وب ویو با استفاده از جاوااسکریپت

3.دانلود و نمایش یک عکس از اینترنت

4.دانلود و نمایش بیش از یک عکس از اینترنت

5.دانلود و نمایش یک فایل متنی

6.سترسی به API های REST

7.ترجمه عبارت های JSON

8.ترجمه XML

9.انتقال داده از طریق NFC

10.برنامه نویسی سوکت

11.ساخت برنامه هواشناسی

دانلود سورس کامل آموزش در این لینک.

 

 

فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد
درباره نویسنده
admin2
رضا نقی لو
androiddev60@gmail.com
نظرات شما
نظر جدید