webviewko

Kotlin Kotlin Kotlin license release gradle ci last commit

English 中文(简体)

寻找接手本项目的开发者 很遗憾,由于读研期间工作时间紧张以及对Kotlin技术不再有兴趣,我不想继续维护本项目了。 如果有任何人愿意接手维护本项目,请通过提出Issue的方式联系我。我会将本项目交由你开发。 感谢大家的支持。


webviewko 是轻量跨平台的网页视图库 webview 的 Kotlin 多平台绑定。

screenshot

快速开始

1. 导入 webviewko

如果你在用 Gradle 或者 Maven 等构建系统,我们建议您通过 GitLab Packages 来使用 webviewko.

对于build.gradle.kts, 使用:

```kotlin {3} repositories { mavenCentral() maven(“https://gitlab.com/api/v4/projects/38224197/packages/maven”) }

implementation(“com.github.winterreisender:webviewko:0.5.0”) // Kotlin Multiplatform implementation(“com.github.winterreisender:webviewko-jvm:0.5.0”) // Java and Kotlin/JVM implementation(“com.github.winterreisender:webviewko-linuxx64:0.5.0”) // Kotlin/Native Linux x64 implementation(“com.github.winterreisender:webviewko-mingwx64:0.5.0”) // Kotlin/Native Windows x64 implementation(“com.github.winterreisender:webviewko-js:0.5.0”) // Kotlin/JS Node.js


如果需要手动导入jar文件, 请到 [GitHub Release](https://github.com/Winterreisender/webviewko/releases) 下载。  
Kotlin/Native需要一些[额外的步骤](https://github.com/Winterreisender/webviewko/wiki/How-to-Import#using-gradle-with-kotlinnative)。


### 2. 使用 webviewko

```kotlin
import com.github.winterreisender.webviewko.WebviewKo

WebviewKo().run {
    title("Title")
    size(800, 600)
    url("https://example.com")
    show()
}

3.与 webview 交互

可以用 bind,init,dispatcheval 来和 webview 进行交互。

import com.github.winterreisender.webviewko.WebviewKo

WebviewKo().run {
    title("Test")
    init("""console.log("Hello, from  init")""")
    bind("increment") {
        val r :Int = Regex("""\["(\d+)"]""").find(it!!)!!.groupValues[1].toInt() + 1
        println(r.toString())
        if(r==8) terminate()
        "{count: $r}"
    }
  
    html("""<button id="increment">Tap me</button>
        <div>You tapped <span id="count">0</span> time(s).</div>
        <script>const [incrementElement, countElement] = document.querySelectorAll("#increment, #count");
          document.addEventListener("DOMContentLoaded", () => {
            incrementElement.addEventListener("click", () => {
              window.increment(countElement.innerText).then(result => {
                countElement.textContent = result.count;
              });});});
         </script>""")
    show()
}

文档

贡献

欢迎并感谢所有Issue, Pull Request和其他形式的贡献。

引用

Project License
webview MIT
webview_java MIT
webview-nodejs Apache-2.0
node-ffi-napi MIT
JNA LGPL-2.1-or-later OR Apache-2.0
Microsoft Webview2 BSD-style
Kotlin & kotlinx Apache-2.0

版权与许可

Copyright 2022 Winterreisender and other contributors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.