ساخت اپ اندرویدی با HTML , javaScript

خیلی وقتا یه استارت آپ کوچیک داریم که میخوایم خیلی سریع اپ و سایتشو بالا بیاریم

گزینه های زیادی جلوی ما هست یکی از این گزینه ها 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 و مثال هاشو ببنید