package com.example.lab6_2024_2025_eng import android.content.Intent import android.os.Bundle import android.webkit.JavascriptInterface import android.webkit.WebView import androidx.appcompat.app.AppCompatActivity // -------- JS interface (must be a separate class) ---------- class GiftsJS(private val activity: Gifts) { @JavascriptInterface fun addGift(name: String) { activity.giftsList.add(name) } @JavascriptInterface fun generateCard() { val intent = Intent(activity, Card::class.java) // join all gifts into one long string intent.putExtra("gifts", activity.giftsList.joinToString("\n")) activity.startActivity(intent) } } // -------- Gifts Activity ----------------------------------- class Gifts : AppCompatActivity() { val giftsList = ArrayList() // new list every app launch override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val page = WebView(this) page.settings.javaScriptEnabled = true page.addJavascriptInterface(GiftsJS(this), "backend") page.loadUrl("file:///android_asset/Gifts.html") setContentView(page) } }

Gift List



package com.example.lab6_2024_2025_eng import android.os.Bundle import android.webkit.JavascriptInterface import android.webkit.WebView import androidx.appcompat.app.AppCompatActivity class CardJS(private val gifts: String) { @JavascriptInterface fun getGifts(): String = gifts } class Card : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val gifts = intent.getStringExtra("gifts") ?: "" val page = WebView(this) page.settings.javaScriptEnabled = true page.addJavascriptInterface(CardJS(gifts), "backend") page.loadUrl("file:///android_asset/Card.html") setContentView(page) } }

Your Wish List