package Ġcom . dev . to u you . math jax _ view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . WebView Ċ import Ġio . flutter . plugin . common . Binary Messenger Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . MethodCall Handler Ċ import Ġio . flutter . plugin . platform . Platform View Ċ Ċ class ĠMath jax View ( context : ĠContext , Ġmess enger : ĠBinary Messenger , Ġid : ĠInt , Ġparams : ĠMap < String , ĠAny >? ): ĠPlatform View , ĠMethod Call Handler Ġ{ ĊĠĠĠ Ġprivate Ġval ĠwebView : ĠWebView ĊĊĠĠĠ Ġprivate Ġval Ġmethod Channel : ĠMethod Channel ĊĠĠĠ Ġprivate Ġval Ġ_ fontSize : ĠInt ? ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView Ġ= ĠWebView ( context ) ĊĊĠĠĠĠĠĠĠ ĠwebView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Support Zoom ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload With Overview Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Wide View Port Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdom Storage Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ_ fontSize Ġ= Ġparams ?. get (" fontSize ") Ġas ĠInt ĊĊĠĠĠĠĠĠĠ ĠwebView . load Data With Base URL ( null , Ġcontent Html (" Please Ġset Ġtext ", Ġ_ fontSize ), Ġ" text / html ", Ġ" utf - 8 ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġmethod Channel Ġ= ĠMethod Channel ( messenger , Ġ" com . dev . to u you / math jax _ view _${ id }") ĊĠĠĠĠĠĠĠ Ġmethod Channel . set MethodCall Handler ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠwebView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall ( method Call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( method Call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set Lat ex Text " Ġ-> Ġset Lat ex Text ( method Call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Lat ex Text ( method Call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlat ex String Ġ= Ġmethod Call . arguments Ġas ĠString ĊĠĠĠĠĠĠĠ ĠwebView . load Data With Base URL ( null , Ġcontent Html ( latex String , Ġ_ fontSize ), Ġ" text / html ", Ġ" utf - 8 ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠMARK : ĠMath jax ĠLogic ĊĊĠĠĠ Ġprivate Ġfun Ġmath Jax Script (): ĠString Ġ= Ġ"< script Ġasync Ġsrc =' https :// cdnjs . cloudflare . com / ajax / libs / math jax / 2 . 7 . 5 / Math Jax . js ? config = TeX - AMS - M ML _ HTML or M ML & locale = ja '></ script >" ĊĊĠĠĠ Ġprivate Ġfun Ġconfig Script (): ĠString Ġ= Ġ""" ĊĠĠĠ Ġ< script Ġtype =\" text / x - math jax - config \"> ĊĠĠĠ ĠMath Jax . Hub . Config ({ ĊĠĠĠĠĠĠĠ Ġjax : Ġ[ \" input / TeX \",\" output / HTML - CSS \" ], ĊĠĠĠĠĠĠĠ Ġtex 2 jax : Ġ{ inline Math : Ġ[[' $ ','$ '], Ġ[' \\ (',' \\ ) '] ]}, ĊĠĠĠĠĠĠĠ Ġshow Math Menu : Ġfalse , ĊĠĠĠĠĠĠĠ ĠMath Menu : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Renderer : Ġfalse ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġmessage Style : Ġ\" none \", ĊĠĠĠĠĠĠĠ Ġ\" HTML - CSS \": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline break s : Ġ{ automatic : Ġtrue }, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġavailable Fonts : Ġ[" TeX "], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġundefined Family : Ġ"' R ale way ', ĠHelvetica , ĠArial , Ġsans - serif " ĊĠĠĠĠĠĠĠ Ġ} }); ĊĠĠĠ Ġ</ script > ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġprivate Ġfun Ġstyle Script ( fontSize : ĠInt ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠfontSize Ġ?: Ġ 2 8 ĊĠĠĠĠĠĠĠ Ġreturn Ġ"< style > body Ġ{ Ġfont - size : Ġ${ size } px ; Ġ}</ style >" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcontent Html ( latex String : ĠString , ĠfontSize : ĠInt ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġconfig Script () Ġ+ Ġmath Jax Script () Ġ+ Ġstyle Script ( fontSize ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ"< html >< header >< meta Ġname =\" viewport \" Ġcontent =\" initial - scale = 1 . 0 \"> ${ header }</ header >< body >${ latex String }</ body ></ html >" ĊĠĠĠ Ġ} Ċ } Ċ