خیلی وقتا یه استارت آپ کوچیک داریم که میخوایم خیلی سریع اپ و سایتشو بالا بیاریم
گزینه های زیادی جلوی ما هست یکی از این گزینه ها html و جاوا اسکریپت وانیلی هست !
که خب سایتشو راحت بالا میاریم و اپ اندروید و iOS هم همینطور !
مشاهده این آموزش توی یوتوب (۲۷ دقیقه یا ۱۳ دقیقه دابل اسپید?)
https://www.youtube.com/watch?v=ooyWwRs1XPM
توی سایت اندروید
https://developer.android.com/develop/ui/views/layout/webapps/webview
خیلی واضح گفته که این کار یکی از روش های ساخت وب اپلیکیشنه !
درسته ! شما بدون اینکه فریم ورک خاصی بلد باشی یا حتی اندروید خیلی راحت میتونید با html و جاوا اسکریپت این کارو انجام بدید فقط باید اندروید استدیو داشته باشید
یه اپ اندروید ایجاد کنید با Empty Activity
زبانشو Kotlin بذارید و Finish
بعدش اینو بذارید توی res->layout->activity_main.xml
<WebView app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" />
بعد توی Java بگردین و MainActivity پیدا کنین و اینو توش بذارید
val myWebView: WebView = findViewById(R.id.webview) myWebView.loadUrl("http://www.google.com")
اینجوری :
بعدش برید توی manifest و پرمیژن اینترنتو اد کنید
<uses-permission android:name="android.permission.INTERNET" />
همینطور اینو بذارید توی تگ application
android:usesCleartextTraffic="true"
اینجوری :
حالا ران بزنید !
اگه گوگل لود بشه یعنی همه کارارو درست انجام دادید
حالا فقط کافیه روی لوکال یا هرجا که میخواین وب اپتونو توسعه بدین و بجای https://www.google.com آدرس اونو بذارید مثلا http://192.168.1.50:8000 یا هرجایی که دارید توسعه میدین
فقط یادتون باشه آخر کار باید حتما بذارید روی هاستی که ssl باشه یعنی با https کار کنه و android:usesCleartextTraffic="true" از توی مانیفست پاک کنید
برای فعال کردن جاوا اسکریپت کافیه این کارو انجام بدین :
myWebView.settings.javaScriptEnabled = true
الان دیگه میتونید از متد های جاوا اسکریپت هم توی اپتون استفاده کنید
برای اینکه بتونید از توی جاوا اسکریپت یه متد توی اندروید اجرا کنید فقط کافیه یک اینترفیس براش درست کنید اونم به این سادگی !
class WebAppInterface(private val mContext: Context) { /** Show a toast from the web page */ @JavascriptInterface fun showToast(toast: String) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show() } }
فقط کافیه اینو توی کلاس MainActivity بذارید
و بعدش اینترفیسی که ساختید به وبویو وصلش کنید اینجوری :
webView.addJavascriptInterface(WebAppInterface(this), "Android")
خب الان دیگه کار تموم شد ! فقط کافیه از توی صفحه وبتون متد های اینترفیستون رو اجرا کنید و لذت ببرید !
مثلا
<script type="text/javascript"> Android.showToast(toast);
حالا شاید بخواید یک متد توی وبویو اجرا کنید !
اینم خیلی سادست !
فقط کافیه از evaluateJavascript استفاده کنید
مثلا اینجوری
myWebView.evaluateJavascript("myJsMethod()",null)
این هروقت اجرا بشه متد myJsMethod که توی جاوا اسکریپت ساختید اجرا میشه !
البته اینا یک سری کامپتیبیلیتی ها و تنظیمات داره که توی کار متوجه میشید
برای آشنایی بیشتر توی گوگل بزنید evaluateJavascript android و مثال هاشو ببنید