44 lines
2.2 KiB
Zig
44 lines
2.2 KiB
Zig
.{
|
|
.id = "dev.native_sdk.mobile_shell",
|
|
.name = "mobile-shell",
|
|
.display_name = "Mobile Shell",
|
|
.version = "0.1.0",
|
|
.platforms = .{ "ios", "android" },
|
|
.permissions = .{},
|
|
.capabilities = .{ "webview", "native_views", "native_module" },
|
|
.commands = .{
|
|
.{ .id = "mobile.back", .title = "Back" },
|
|
.{ .id = "mobile.refresh", .title = "Refresh" },
|
|
},
|
|
.shell = .{
|
|
// Declared platform chrome: on hosts that project it (the iOS
|
|
// canvas host today) the tab set becomes a REAL system tab bar
|
|
// and the primary action a real button; taps dispatch the ids
|
|
// below through the same command path as the header buttons.
|
|
// Hosts without a projection (this fixed WebView shell's
|
|
// hand-written hosts, desktop, Android for now) leave it inert.
|
|
.chrome = .{
|
|
.tabs = .{
|
|
.{ .id = "mobile.tab.workspace", .label = "Workspace", .icon = "menu" },
|
|
.{ .id = "mobile.tab.status", .label = "Status", .icon = "info" },
|
|
},
|
|
.primary_action = .{ .id = "mobile.refresh", .label = "Refresh", .icon = "refresh-cw" },
|
|
},
|
|
.windows = .{
|
|
.{
|
|
.label = "main",
|
|
.title = "Mobile Shell",
|
|
.views = .{
|
|
.{ .label = "mobile-header", .kind = "toolbar", .edge = "top", .height = 104, .role = "toolbar" },
|
|
.{ .label = "mobile-title", .kind = "label", .parent = "mobile-header", .text = "Mobile Shell", .accessibility_label = "Mobile Shell" },
|
|
.{ .label = "mobile-status", .kind = "statusbar", .edge = "bottom", .height = 28, .text = "Native commands ready" },
|
|
.{ .label = "mobile-back", .kind = "button", .parent = "mobile-header", .text = "Back", .command = "mobile.back" },
|
|
.{ .label = "mobile-refresh", .kind = "button", .parent = "mobile-header", .text = "Refresh", .command = "mobile.refresh" },
|
|
.{ .label = "workspace", .kind = "webview", .url = "zero://app/index.html", .fill = true },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
.web_engine = "system",
|
|
}
|