mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
---
|
|
layout: "layouts/DocLayout.astro"
|
|
title: WebView
|
|
description: Documentation for the WebView API for spotube plugins
|
|
order: 0
|
|
---
|
|
|
|
The [hetu_spotube_plugin][hetu_spotube_plugin] is a built-in module that plugin developers can use in their plugins.
|
|
|
|
```hetu_script
|
|
import "module:spotube_plugin" as spotube
|
|
```
|
|
|
|
## WebView API
|
|
|
|
The WebView API allows plugins to create and manage web views within the Spotube application.
|
|
|
|
### Usage
|
|
|
|
First, an WebView instance needs to be created with `uri`.
|
|
|
|
```hetu_script
|
|
import "module:spotube_plugin" as spotube
|
|
|
|
let webview = spotube.Webview(uri: "https://example.com")
|
|
```
|
|
|
|
To open the webview, you can use the `open` method:
|
|
|
|
```hetu_script
|
|
webview.open() // returns Future<void>
|
|
```
|
|
|
|
To close the webview, you can use the `close` method:
|
|
|
|
```hetu_script
|
|
webview.close() // returns Future<void>
|
|
```
|
|
|
|
### Listening to URL changes
|
|
|
|
You can listen to url change events by using the `onUrlRequestStream` method. It's emitted when the URL of the webview changes,
|
|
such as when the user navigates to a different page or clicks a link.
|
|
|
|
```hetu_script
|
|
// Make sure to import the hetu_std and Stream
|
|
import "module:hetu_std" as std
|
|
|
|
var Stream = std.Stream
|
|
|
|
// ... created webview instance and other stuff
|
|
|
|
var subscription = webview.onUrlRequestStream().listen((url) {
|
|
// Handle the URL change
|
|
print("URL changed to: $url")
|
|
})
|
|
|
|
// Don't forget to cancel the subscription when it's no longer needed
|
|
subscription.cancel()
|
|
```
|
|
|
|
### Retrieving cookies
|
|
|
|
To get cookies from the webview, you can use the `getCookies` method:
|
|
|
|
```hetu_script
|
|
webview.getCookies("https://example.com") // returns Future<List<Cookie>>
|
|
```
|
|
|
|
You can find the [`Cookie` class][spotube_plugin_cookie] and all it's methods and properties in the
|
|
`hetu_spotube_plugin` module source code
|
|
|
|
{/* Links */}
|
|
[hetu_spotube_plugin]: https://github.com/KRTirtho/hetu_spotube_plugin
|
|
[spotube_plugin_cookie]: https://github.com/KRTirtho/hetu_spotube_plugin/blob/main/lib/assets/hetu/webview.ht
|