Packages
mob_new
0.1.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.45
0.1.44
0.1.43
0.1.42
0.1.40
0.1.33
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Project generator for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
priv/templates/mob.new/lib/app_name/webview_screen.ex.eex
defmodule <%= module_name %>.WebViewScreen do
use Mob.Screen
def mount(_params, _session, socket) do
{:ok, Mob.Socket.assign(socket, last_msg: nil)}
end
def render(assigns) do
~MOB"""
<Column background={:background} fill_width={true} fill_height={true}>
<Text text="WebView" text_size={:lg} text_color={:on_surface} padding={:space_md} />
{status_row(assigns)}
<WebView url="https://www.google.com" show_url={true} weight={1} />
</Column>
"""
end
defp status_row(%{last_msg: nil}) do
~MOB(<Text text="Waiting for JS bridge event..." text_size={:sm} text_color={:muted} padding={:space_sm} />)
end
defp status_row(%{last_msg: msg}) do
text = "JS->Elixir: #{inspect(msg)}"
~MOB(<Text text={text} text_size={:sm} text_color={:primary} padding={:space_sm} />)
end
def handle_info({:webview, :message, data}, socket) do
socket = Mob.WebView.post_message(socket, %{"echo" => data})
{:noreply, Mob.Socket.assign(socket, last_msg: data)}
end
def handle_info(_msg, socket), do: {:noreply, socket}
end