Compare commits

...
34 Commits
Author SHA1 Message Date
rizky_denianto 743fc021f6 Merge pull request 'Menyederhanakan cara meminta izin untuk menggunakan plugin' (#26) from pengembangan into main
Reviewed-on: #26
2026-09-12 22:14:22 +07:00
rizky_denianto 24c5d3e1f2 Mengubah urutan rilis agar cargo tidak komplen
Penerbitan Plugin / persiapan (pull_request) Successful in 7s
Penerbitan Plugin / penerbitan (pull_request) Successful in 4m13s
2026-09-12 22:06:17 +07:00
rizky_denianto de72fa5e3e Menyederhanakan cara meminta izin untuk menggunakan plugin
Penerbitan Plugin / persiapan (pull_request) Successful in 6s
Penerbitan Plugin / penerbitan (pull_request) Failing after 4m17s
2026-09-12 21:44:37 +07:00
rizky_denianto a8ff604873 Merge pull request 'Coba memperbaiki tipe data yang tidak terdeteksi di js' (#25) from pengembangan into main
Reviewed-on: #25
2026-09-06 11:57:48 +07:00
rizky_denianto 00aa5a8526 Coba memperbaiki tipe data yang tidak terdeteksi di js
Penerbitan Plugin / persiapan (pull_request) Successful in 35s
Penerbitan Plugin / penerbitan (pull_request) Successful in 4m4s
2026-09-06 11:38:43 +07:00
rizky_denianto d497b68bb7 Merge pull request 'Menggunakan nama variabel sesuai dengan nama kelas' (#24) from pengembangan into main
Reviewed-on: #24
2026-09-05 16:37:07 +07:00
rizky_denianto 432a34540d Menggunakan nama variabel sesuai dengan nama kelas
Penerbitan Plugin / persiapan (pull_request) Successful in 5s
Penerbitan Plugin / penerbitan (pull_request) Successful in 3m47s
2026-09-05 16:00:59 +07:00
rizky_denianto 09ac478ae3 Merge pull request 'Menambah deskripsi di README.md' (#23) from pengembangan into main
Reviewed-on: #23
2026-09-04 01:45:16 +07:00
rizky_denianto 923540934e Melakukan pembangunan citra terlebih dahulu sebelum diterbitkan
Penerbitan Plugin / persiapan (pull_request) Successful in 5s
Penerbitan Plugin / penerbitan (pull_request) Successful in 3m28s
2026-09-04 01:38:26 +07:00
rizky_denianto 30120dacb2 Mengubah payload menjadi muatan 2026-09-04 01:18:49 +07:00
rizky_denianto f0b237d2a2 Menambah deskripsi di README.md
Penerbitan Plugin / persiapan (pull_request) Successful in 5s
Penerbitan Plugin / penerbitan (pull_request) Successful in 4m29s
2026-09-04 00:29:13 +07:00
rizky_denianto c72613bd76 Merge pull request 'Meletakkan argumen alamat ke variabel alamat' (#22) from pengembangan into main
Reviewed-on: #22
2026-09-03 23:25:29 +07:00
rizky_denianto cd139ab7c7 Meletakkan argumen alamat ke variabel alamat
Penerbitan Plugin / persiapan (pull_request) Successful in 5s
Penerbitan Plugin / penerbitan (pull_request) Successful in 3m51s
2026-09-03 23:06:13 +07:00
rizky_denianto 6f9ac2f9e3 Merge pull request 'Menambah keterangan sistem operasi yang didukung' (#21) from pengembangan into main
Reviewed-on: #21
2026-09-02 23:18:59 +07:00
rizky_denianto c5904331d3 Merge pull request 'Memperbarui paket dan mencoba menerbitkan peti cargo' (#20) from pengembangan into main
Reviewed-on: #20
2026-09-02 01:09:33 +07:00
rizky_denianto 1754b6a812 Merge pull request 'Memperbaiki payload untuk fungsi kirim' (#19) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #19
2026-08-11 00:59:09 +07:00
rizky_denianto 3354416f6b Merge pull request 'Memperbaiki tipe data respon daftar perangkat' (#18) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #18
2026-07-18 01:28:41 +07:00
rizky_denianto a1efac9fd1 Merge pull request 'Memindahkan model guest-js ke index' (#17) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #17
2026-07-18 01:22:31 +07:00
rizky_denianto 0359652b9c Merge pull request 'Menaikkan versi plugin' (#16) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #16
2026-07-18 01:14:07 +07:00
rizky_denianto 8c9bc8b53c Merge pull request 'Memindahkan fungsi komputer meja ke sini' (#15) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #15
2026-07-18 01:09:21 +07:00
rizky_denianto eab4ea5567 Merge pull request 'Memperbaiki fungsi invoke' (#14) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #14
2026-07-16 23:22:06 +07:00
rizky_denianto d0843a9518 Merge pull request 'Menghapus if dari penerbitan' (#13) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #13
2026-07-16 21:41:01 +07:00
rizky_denianto f40b309886 Merge pull request 'Menambah langkah penerbitan paket' (#12) from pengembangan into main
Penerbitan Plugin / persiapan (push) Has been skipped
Penerbitan Plugin / penerbitan (push) Has been skipped
Reviewed-on: #12
2026-07-16 21:25:25 +07:00
rizky_denianto 830a2e908a Merge pull request 'Pembaruan paket' (#11) from pengembangan into main
Reviewed-on: #11
2026-07-16 20:11:11 +07:00
rizky_denianto e77cb835eb Merge pull request 'Mengubah izin default' (#10) from pengembangan into main
Reviewed-on: #10
2026-07-16 19:50:46 +07:00
rizky_denianto bb116775c4 Merge pull request 'Menyesuaikan guest-js' (#9) from pengembangan into main
Reviewed-on: #9
2026-07-16 19:38:36 +07:00
rizky_denianto 424c0f7049 Merge pull request 'Menambah izin per perintah atau per fungsi' (#8) from pengembangan into main
Reviewed-on: #8
2026-07-16 00:32:32 +07:00
rizky_denianto 8bdb1fcd27 Merge pull request 'Menambah fungsi cek dan minta izin' (#7) from pengembangan into main
Reviewed-on: #7
2026-07-15 23:46:50 +07:00
rizky_denianto 6e1eb9b9a5 Merge pull request 'Pembaruan peti' (#6) from pengembangan into main
Reviewed-on: #6
2026-05-18 19:00:41 +07:00
rizky_denianto bc3ac09f0c Merge pull request 'Memperbaiki program kirim data' (#5) from pengembangan into main
Reviewed-on: #5
2026-04-15 01:39:24 +07:00
rizky_denianto df87a5e811 Merge pull request 'Memperbaiki penamaan struktur' (#4) from pengembangan into main
Reviewed-on: #4
2026-04-14 23:37:59 +07:00
rizky_denianto 62e1a286a7 Merge pull request 'Mengubah daftar respon dari map ke jsarray' (#3) from pengembangan into main
Reviewed-on: #3
2026-04-14 23:26:00 +07:00
rizky_denianto 43ad1645b2 Merge pull request 'Menyesuaikan nama kelas dengan plugin' (#2) from pengembangan into main
Reviewed-on: #2
2026-04-14 19:36:01 +07:00
rizky_denianto da50a0f466 Merge pull request 'Membuat program android untuk menghubungkan tauri dengan perangkat bluetooth classic' (#1) from pengembangan into main
Reviewed-on: #1
2026-04-14 19:05:15 +07:00
10 changed files with 64 additions and 45 deletions

No files matched your search

+12 -12
View File
@@ -41,6 +41,18 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Unduh Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
rustflags: "-A warnings"
- name: Penerbitan peti Cargo
run: |
cargo publish
env:
CARGO_REGISTRIES_GITEA_TOKEN: Bearer ${{ secrets.KUNCI_PENERBITAN }}
- name: Unduh pnpm - name: Unduh pnpm
uses: pnpm/setup@v2 uses: pnpm/setup@v2
with: with:
@@ -53,15 +65,3 @@ jobs:
npm config set -- '//${{ vars.ALAMAT_GITEA }}/api/packages/${{ needs.persiapan.outputs.organisasi }}/npm/:_authToken' "${{ secrets.KUNCI_PENERBITAN }}" npm config set -- '//${{ vars.ALAMAT_GITEA }}/api/packages/${{ needs.persiapan.outputs.organisasi }}/npm/:_authToken' "${{ secrets.KUNCI_PENERBITAN }}"
npm publish npm publish
rm -rf pnpm-lock.yaml .pnpm-store/ rm -rf pnpm-lock.yaml .pnpm-store/
- name: Unduh Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
rustflags: "-A warnings"
- name: Penerbitan peti Cargo
run: |
cargo publish
env:
CARGO_REGISTRIES_GITEA_TOKEN: Bearer ${{ secrets.KUNCI_PENERBITAN }}
+3 -3
View File
@@ -1,10 +1,10 @@
[package] [package]
name = "tauri-plugin-bluclas" name = "tauri-plugin-bluclas"
version = "0.1.16" version = "0.1.23"
authors = [ "Rizky Denianto" ] authors = [ "Rizky Denianto" ]
description = "Program sederhana untuk interaksi dengan bluetooth classic" description = "Program sederhana untuk interaksi dengan bluetooth classic"
edition = "2024" edition = "2024"
rust-version = "1.94.1" rust-version = "1.98.0"
exclude = ["/examples", "/dist-js", "/guest-js", "/node_modules"] exclude = ["/examples", "/dist-js", "/guest-js", "/node_modules"]
links = "tauri-plugin-bluclas" links = "tauri-plugin-bluclas"
@@ -28,7 +28,7 @@ ios = { level = "none" }
tauri = { version = "2.11.5" } tauri = { version = "2.11.5" }
serde = "1.0" serde = "1.0"
thiserror = "2" thiserror = "2"
serialport = "4.10.0" serialport = "4.10.1"
[build-dependencies] [build-dependencies]
tauri-plugin = { version = "2.6.3", features = ["build"] } tauri-plugin = { version = "2.6.3", features = ["build"] }
+2
View File
@@ -1 +1,3 @@
# Tauri Plugin bluclas # Tauri Plugin bluclas
Program sederhana untuk interaksi dengan bluetooth classic
+20 -19
View File
@@ -37,11 +37,11 @@ class KirimArgs {
] ]
) )
class BluclasPlugin(private val activity: Activity) : Plugin(activity) { class BluclasPlugin(private val activity: Activity) : Plugin(activity) {
private val uuidSpp: UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB") private val uuid: UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")
private val adapter: BluetoothAdapter? = this.activity.getSystemService(BluetoothManager::class.java).getAdapter() private val bluetoothAdapter: BluetoothAdapter? = this.activity.getSystemService(BluetoothManager::class.java).getAdapter()
private var soket: BluetoothSocket? = null private var bluetoothSocket: BluetoothSocket? = null
private var keluaran: OutputStream? = null private var outputStream: OutputStream? = null
@Command @Command
override fun checkPermissions(invoke: Invoke) { override fun checkPermissions(invoke: Invoke) {
@@ -55,13 +55,13 @@ class BluclasPlugin(private val activity: Activity) : Plugin(activity) {
@Command @Command
fun daftarPerangkat(invoke: Invoke) { fun daftarPerangkat(invoke: Invoke) {
if (adapter == null) { if (bluetoothAdapter == null) {
invoke.reject("Bluetooth tidak didukung") invoke.reject("Bluetooth tidak didukung")
return return
} }
val daftarRes = JSArray() val daftarRes = JSArray()
adapter.bondedDevices.map { i -> bluetoothAdapter.bondedDevices.map { i ->
val res = JSObject() val res = JSObject()
res.put("nama", i.name ?: "Unknown") res.put("nama", i.name ?: "Unknown")
res.put("alamat", i.address) res.put("alamat", i.address)
@@ -74,36 +74,37 @@ class BluclasPlugin(private val activity: Activity) : Plugin(activity) {
} }
fun menghubungkanKoneksi(alamat: String) { fun menghubungkanKoneksi(alamat: String) {
val perangkat: BluetoothDevice = adapter!!.getRemoteDevice(alamat) val bluetoothDevice: BluetoothDevice = bluetoothAdapter!!.getRemoteDevice(alamat)
soket = perangkat.createInsecureRfcommSocketToServiceRecord(uuidSpp) bluetoothSocket = bluetoothDevice.createInsecureRfcommSocketToServiceRecord(uuid)
soket!!.connect() bluetoothSocket!!.connect()
keluaran = soket!!.outputStream outputStream = bluetoothSocket!!.outputStream
} }
fun memutusKoneksi() { fun memutusKoneksi() {
keluaran?.close() outputStream?.close()
keluaran = null outputStream = null
soket?.close() bluetoothSocket?.close()
soket = null bluetoothSocket = null
} }
@Command @Command
fun kirim(invoke: Invoke) { fun kirim(invoke: Invoke) {
val args = invoke.parseArgs(KirimArgs::class.java) val args = invoke.parseArgs(KirimArgs::class.java)
if (args.alamat.isNullOrEmpty()) { val alamat = args.alamat
if (alamat.isNullOrEmpty()) {
invoke.resolve() invoke.resolve()
return return
} }
try { try {
menghubungkanKoneksi(args.alamat) menghubungkanKoneksi(alamat)
if (keluaran == null) { if (outputStream == null) {
throw Exception("Tidak ada perangkat yang terhubung") throw Exception("Tidak ada perangkat yang terhubung")
} }
keluaran!!.write(args.data) outputStream!!.write(args.data)
keluaran!!.flush() outputStream!!.flush()
} catch (e: Exception) { } catch (e: Exception) {
memutusKoneksi() memutusKoneksi()
+19 -2
View File
@@ -1,4 +1,21 @@
import { invoke } from "@tauri-apps/api/core"; import {
checkPermissions as checkPermissions_,
invoke,
PermissionState,
requestPermissions as requestPermissions_,
} from "@tauri-apps/api/core";
export async function checkPermissions(): Promise<PermissionState> {
return await checkPermissions_<{ bluetooth: PermissionState }>(
"bluclas",
).then((e) => e.bluetooth);
}
export async function requestPermissions(): Promise<PermissionState> {
return await requestPermissions_<{ bluetooth: PermissionState }>(
"bluclas",
).then((e) => e.bluetooth);
}
export type SDaftarPerangkatBlueclasResponDaftarPerangkat = { export type SDaftarPerangkatBlueclasResponDaftarPerangkat = {
nama: string; nama: string;
@@ -21,5 +38,5 @@ export type SBlueclasMuatanKirim = {
}; };
export async function kirim(muatan: SBlueclasMuatanKirim): Promise<null> { export async function kirim(muatan: SBlueclasMuatanKirim): Promise<null> {
return await invoke<null>("plugin:bluclas|kirim", { payload: muatan }); return await invoke<null>("plugin:bluclas|kirim", { muatan: muatan });
} }
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "@segubi/tauri-plugin-bluclas-api", "name": "@segubi/tauri-plugin-bluclas-api",
"version": "0.1.16", "version": "0.1.23",
"author": "Rizky Denianto", "author": "Rizky Denianto",
"description": "Program sederhana untuk interaksi dengan bluetooth classic", "description": "Program sederhana untuk interaksi dengan bluetooth classic",
"type": "module", "type": "module",
@@ -26,7 +26,7 @@
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-typescript": "^12.3.0", "@rollup/plugin-typescript": "^12.3.0",
"rollup": "^4.63.1", "rollup": "^4.63.2",
"typescript": "^6.0.3", "typescript": "^6.0.3",
"tslib": "^2.8.1" "tslib": "^2.8.1"
} }
+2 -1
View File
@@ -20,7 +20,8 @@ export default {
plugins: [ plugins: [
typescript({ typescript({
declaration: true, declaration: true,
declarationDir: dirname(pkg.exports.import) declarationDir: dirname(pkg.exports.import),
rootDir: 'guest-js'
}) })
], ],
external: [ external: [
+2 -2
View File
@@ -14,7 +14,7 @@ pub(crate) async fn daftar_perangkat<R: Runtime>(
#[command] #[command]
pub(crate) async fn kirim<R: Runtime>( pub(crate) async fn kirim<R: Runtime>(
app: AppHandle<R>, app: AppHandle<R>,
payload: SBlueclasMuatanKirim, muatan: SBlueclasMuatanKirim,
) -> Result<()> { ) -> Result<()> {
return app.bluclas().kirim(payload); return app.bluclas().kirim(muatan);
} }
-2
View File
@@ -3,8 +3,6 @@ use tauri::{
plugin::{Builder, TauriPlugin}, plugin::{Builder, TauriPlugin},
}; };
pub use models::*;
#[cfg(desktop)] #[cfg(desktop)]
mod desktop; mod desktop;
#[cfg(mobile)] #[cfg(mobile)]
+2 -2
View File
@@ -32,10 +32,10 @@ impl<R: Runtime> Bluclas<R> {
.map_err(Into::into); .map_err(Into::into);
} }
pub fn kirim(&self, payload: SBlueclasMuatanKirim) -> crate::Result<()> { pub fn kirim(&self, muatan: SBlueclasMuatanKirim) -> crate::Result<()> {
return self return self
.0 .0
.run_mobile_plugin("kirim", payload) .run_mobile_plugin("kirim", muatan)
.map_err(Into::into); .map_err(Into::into);
} }
} }