package Ġcom . example . webapp Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . setContent Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġcom . example . webapp . ui . theme . App Theme Ċ import Ġjava . net . URL Encoder Ċ import Ġjava . util .* Ċ Ċ class ĠMainActivity Ġ: ĠComponent Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen (" Android ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠScreen ( title : ĠString ) Ġ{ ĊĠĠĠ ĠAndroid View ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠ Ġview Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWebView ( it ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Client Ġ= ĠWebView Client () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . java Script Can Open Windows Autom atically Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . allow Content Access Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . allow File Access Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġ" my - element " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslot Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġ" build / bundle . es . js " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġscript Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript Ġ= Ġcontext . assets . open ( bundle ). buffered Reader (). use Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . read Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( script ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhtml String Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DOCTYPE Ġhtml > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< html Ġlang =" en "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< head > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta Ġcharset =" UTF - 8 " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta Ġname =" viewport " Ġcontent =" width = device - width , Ġinitial - scale = 1 . 0 , Ġmaximum - scale = 1 . 0 , Ġminimum - scale = 1 . 0 , Ġuser - scalable = no " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< title >${ title }</ title > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< style > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth : Ġ 1 0 0 %; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : Ġ 1 0 0 vh ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding : Ġ 0 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmargin : Ġ 0 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ style > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ head > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< body > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< ${ tag }> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ slot ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ${ tag }> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< script > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ script ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ script > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ body > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ html > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Data ( html String , Ġ" text / html ", Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġupdate Ġ= Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Preview ( show Background Ġ= Ġtrue ) Ċ @ Composable Ċ fun ĠDefault Preview () Ġ{ ĊĠĠĠ ĠApp Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠScreen (" Android ") ĊĠĠĠ Ġ} Ċ }