Persian Software Engineers – Telegram
Persian Software Engineers
1.9K subscribers
353 photos
14 videos
84 files
303 links
تجربیات شخصی یک مهندس نرم افزار در آلمان‌.
کانال یوتیوب:
https://www.youtube.com/@Dev_Germany
ادمین کانال :
@mohamad_germany
Download Telegram
با سلام به اعضای محترم کانال. مقاری هستم و قسمت 12 آموزش اندروید رو شروع میکنیم
در این قسمت به ادامه بحث اینترنت و ارسال ایمیل و یک سری نکات ویژه از جمله اشنایی با webView خواهیم پرداخت.
ابتدا یک نکته ای رو باید بررسی کنیم. جلسه قبل یک تقویم فارسی در صفحه گذاشتیم. این تقویم در موبایلهایی با صفحات کوچکتر به صورت زیر قرار میگیرد
به این منظور که خارج از صفحه قرار خواهدگرفت. جهت حل این مشکل باید برای صفحاتی که ابزارهای زیادی دارند Scroll بگذارید. نحوه قرار دادن scroll بصورت زیر هست:


قرار دادن scroll در صفحات:
تا الان تگ اصلی صفحات شما layout ها بودند. حالا باید کاری کنید تا layout اصلی شما درون یک تگ scroll قرار بگیرد. برای اینکار کافی هست دقیقا قبل از تگ ابتدایی layout خودتان این تگ رو قرار بدید:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"

>
واضح هست که ارتفاع و عرض آن باید fill باشد. از طرفی یادآوری میکنم که صفت زیر باید برای اولین تگ همیشه ذکر شود:
xmlns:android=http://schemas.android.com/apk/res/android
در نهایت در انتهای کدهای xml خود به این صورت تگ ScrollView را ببندید:
</ScrollView>
پس از اینکار صفحه دیزاین شما به صورت زیر خواهد بود و از طرفی پس از اجرا در گوشی موبایل و یا شبیه ساز scroll خواهید داشت. اگر دقت کنید شکل سمت چپ اجرای برنامه در گوشی موبایل را نشان میدهد و ناحیه قرمز مشخص شده scroll میباشد که با کمی دقت قابل دیدن است. شکل سمت چپ نیز دیزاین برنامه در اینتلیجی را نشان میدهد.
🔴🔴🔴🔴🔴🔴🔴🔴

2-کار با webView
ابزار webView جهت نمایش یک صفحه وب در خود برنامه اندروید میباشد. یعنی با اجرا کردن مرورگر و باز کردن یک صفحه توسط مرورگر تفاوت دارد. بلکه صفحه وب شما در خود برنامه داخل webView نشان داده خواهد شد.
برای استفاده از webView از پروژه قبلی که برای تست اینترنت بود استفاده میکنیم. ابتدا یک ابزار webView و یک دکمه در صفحه قرار میدهیم:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button" android:layout_gravity="center_horizontal"/>

<WebView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/webview"
></WebView>

اینبار میخواهیم با زدن دکمه پس از تست اتصال به اینترنت که یاد گرفتیم یک صفحه وب را در webView نمایش بدهیم.
به اکتیویتی خود باز میگردیم. کدی که داشتیم بصورت زیر بود:
اینبار در else به جای باز کردن صفحه وب از webView باید استفاده کنیم.

WebView webView = (WebView) findViewById(R.id.webview);
webView.loadUrl("http://www.google.com");

به همین سادگی میتوانید تست کنید برنامه را. عکس زیر مربوط به تست برنامه در گوشی و پس از زدن دکمه در موبایل هست.
در ادامه میخوام یک کاربرد جالب از وب ویو رو بهتون آموزش بدم. قبل از هرچیز بگذارید یک سری از ویژگی های وب ویو را تست کنیم. اول از همه متد loadUri بود. یک ورودی متنی داشت که در اصل آدرس سایت بوده و آن را لود میکرد.
یکی دیگر از امکانات وب ویو فعال کردن جاوااسکریپت هست. برای اینکار باید از Setting وب ویو بخواهید که امکان اجرای دستورات جاوااسکریپت را فعال کند. به این سادگی:


webView.getSettings().setJavaScriptEnabled(true);

که البته باید گفته شود که این قابلیت بصورت پیشفرض فعال نیست.
یا بطور مثال قابلیت زوم کردن برای صفحات بذارید. که با کد زیر امکان پذیر هست.

webView.getSettings().setBuiltInZoomControls(true);


خودتان میتوانید با چک کردن قابلیتهایی که متد getSettings در اختیارتان قرار میدهد با آنها آشنا شوید.
در ادامه نیز یک کار جالب میخواهیم یاد بگیریم.
یکی از روشهای ساخت برنامه برای اندروید جدای از روش ما (جاوا یا درواقع نیتیو) استفاده از cross platform هست. مثلا در فونگپ شما با استفاده از کدهای html css javanoscript برنامه خود را ساخته و از آن یک خروجی برای اندروید میسازید و یا ios.
با استفاده از همین html css js میتوانید در همین برنامه جاوای خود هم کدنویسی کنید. با کمک وب ویو که کاربردهای خود را دارد. یک کاربرد مناسب آن نمایش یک متن میباشد که در آن قابلیت زوم هم داشته باشید. و یا مثلا میتوانید از انیمیشنهای خاصی که توسط css ساخته میشوند برای یکی از صفحات خود استفاده کنید. ولی واضح هست که این روش استاندارد خود را دارد و اگر به این شیوه علاقه دارید میتوانید از فونگپ استفاده کنید. در اینجا فقط خواستم مثالی زده باشم تا آشنا بشید. بطور مثال میخواهم یک دکمه ای که به این روش ساخته شده را در یک وب ویو نشان دهم. این دکمه بصورت زیر هست که با زدن آن مانند زیر یک حرکت انیمیشنی خواهد داشت:
برای اینکار ابتدا باید با پوشه asset آشنا بشید. همانطور که از پوشه res استفاده کردیم تا به اینجا دیدید که هر فایلی در پوشه res قرار نمیگیرد و نام گذاریهای خودش را دارد. همچنین فایلهایی که در Res قرار میدادیم همگی دارای id بودند برای دسترسی ساده تر. مانند عکسها یا فایلای xml. پوشه دیگری بنام assets هست (اگر نیست بسازید) که در آن هر فایلی بخواهید میتوانید قرار دهید. بطور مثال میخواهیم فایلهای html و css مربوط به انیمیشنی که نشان داده شد را در این پوشه قرار دهیم.

بعنوان مثال در پوشه asset خود (از طریق مسیر ذخیره برنامه وارد شوید) یک پوشه به نام www ساخته و فایلهای html و css ضمیمه شده را قرار دهید (یا هر کد دیگری که دارید را).
حالا در اکتیویتی خود در همان بخش else جای webView.loadUrl کد زیر را قرار دهید:

webView.loadUrl("file:///android_asset/www/index.html");

فکر میکنم امتحان کردنش جالب باشه.