文件最后提交记录最后更新时间
feat(viewer): add mpp-viewer and mpp-viewer-web modules #453 Introduce new multiplatform viewer modules with core classes and web support. Update UI wrappers and build scripts to integrate viewer functionality. 6 个月前
chore: trim compose icon dependency 1 个月前
feat(web): add KCEF desktop support for Mermaid preview #463 Integrate KCEF (Chromium Embedded Framework) for desktop Mermaid rendering, including initialization, progress UI, error handling, and JVM flags. Update build config and improve MermaidRenderer usage. 6 个月前
feat(viewer): add mpp-viewer and mpp-viewer-web modules #453 Introduce new multiplatform viewer modules with core classes and web support. Update UI wrappers and build scripts to integrate viewer functionality. 6 个月前
chore: trim compose icon dependency 1 个月前
README.md

mpp-viewer-web

WebView-based implementation of the viewer API for AutoDev, using compose-webview-multiplatform and Monaco Editor.

Features

  • Cross-platform WebView support (JVM, Android, iOS)
  • Monaco Editor integration for code syntax highlighting
  • Offline-capable viewer HTML
  • Support for multiple content types (code, markdown, images, etc.)

Architecture

  • WebViewerHost: Implementation of ViewerHost that communicates with WebView via JavaScript
  • ViewerWebView: Composable WebView component for displaying content
  • viewer.html: Embedded HTML with Monaco Editor for offline viewing

Usage

@Composable
fun MyFileViewer(filePath: String) {
    val webViewState = rememberWebViewState(url = "")
    val viewerHost = remember { WebViewerHost(webViewState) }
    
    ViewerWebView(
        viewerHost = viewerHost,
        onReady = {
            // WebView is ready, show content
            val request = ViewerRequest(
                type = ViewerType.CODE,
                content = fileContent,
                language = LanguageDetector.detectLanguage(filePath)
            )
            viewerHost.showContent(request)
        }
    )
}

Dependencies

  • mpp-viewer: Core viewer API
  • compose-webview-multiplatform: Cross-platform WebView component
  • kotlinx-serialization-json: JSON serialization for viewer requests