/** * 第 2 章配套代码 · Android 宿主壳的 MainActivity * * 文件位置:androidApp/src/main/java/com/example/kuikly/MainActivity.kt * * 这是宿主 App 的入口,演示如何从原生侧打开一个 Kuikly 页面。 */ package com.example.kuikly import android.os.Bundle import androidx.appcompat.app.AppCompatActivity // 注意:以下 import 来自 Kuikly 框架 // import com.tencent.kuikly.android.KuiklyActivity // import com.tencent.kuikly.core.KuiklyCoreEntry // KSP 编译期生成 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ① 触发 KSP 自动生成的路由注册代码 // 这一行的本质:把所有 @Page 注解的类登记到 Kuikly 的路由表 KuiklyCoreEntry.triggerRegisterPages() // ② 跳转到指定的 Kuikly Pager // KuiklyActivity 是框架提供的通用容器,所有 Pager 都跑在它里面 val intent = KuiklyActivity.createIntent( context = this, pageName = "HomePage", // 与 @Page("HomePage") 对应 pageData = mapOf( // 可选:传给 Pager 的初始化数据 "userId" to "12345", "from" to "main_entry", ), ) startActivity(intent) // ③ 关闭壳 Activity,避免按返回键回到这里 finish() } } // 仅为示意,真实工程下 KuiklyActivity 来自框架。这里给出"它大概长啥样" object KuiklyActivity { fun createIntent(context: Any, pageName: String, pageData: Map): Any { TODO("框架内置实现") } } object KuiklyCoreEntry { fun triggerRegisterPages() { // KSP 在编译期会生成实际实现 // 类似: // PagerRegistry.register("HomePage") { HomePage() } // PagerRegistry.register("DetailPage") { DetailPage() } // ... } }