Skip to content

Commit 00861fe

Browse files
authored
made share link sharable (for android and such)
- so that they can be send off to another app
1 parent 0542057 commit 00861fe

4 files changed

Lines changed: 47 additions & 4 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@ go build && ./main
4444
- inline CSP to html
4545
- load test
4646
- generate sha-BLAH during build and include in csp
47-
- [web share target](https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_API). either have less secure server side encryption or use a service worker to intercept post req and perform the work there
47+
- share qr code image as part of the navigator.share payload....

resources/js/noteSaved.js

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import QRCode from 'qrcode'
2-
2+
// note: this is for the share_target only (ie: android pwa)
33

44
export class NoteSaved {
55

@@ -8,7 +8,7 @@ export class NoteSaved {
88
const ff = new URLSearchParams(window.location.hash.slice(1))
99
const hash = ff.get('hash')
1010
const id = ff.get('id')
11-
11+
1212

1313
const clearnetShareLink = `${document.querySelector('meta[name="clearnet"]').getAttribute('content')}/decrypt/${id}#${hash}`
1414
document.getElementById('clearnetShareLink').href = clearnetShareLink
@@ -20,5 +20,27 @@ export class NoteSaved {
2020
QRCode.toCanvas(document.getElementById('clearnetShareQR'), clearnetShareLink),
2121
QRCode.toCanvas(document.getElementById('darknetShareQR'), dakrnetShareLink)
2222
])
23+
24+
25+
document.getElementById("clearnetShareLink").addEventListener("click", async (event) => {
26+
if (navigator.share) {
27+
event.preventDefault()
28+
// not defined for all browsers
29+
await navigator.share({
30+
url: clearnetShareLink
31+
})
32+
33+
}
34+
})
35+
36+
document.getElementById("dakrnetShareLink").addEventListener("click", async (event) => {
37+
if (navigator.share) {
38+
event.preventDefault()
39+
// not defined for all browsers
40+
await navigator.share({
41+
url: dakrnetShareLink
42+
})
43+
}
44+
})
2345
}
2446
}

resources/js/welcome.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,27 @@ export class Welcome {
8484
QRCode.toCanvas(document.getElementById('clearnetShareQR'), clearnetShareLink),
8585
QRCode.toCanvas(document.getElementById('darknetShareQR'), dakrnetShareLink)
8686
])
87+
88+
document.getElementById("clearnetShareLink").addEventListener("click", async (event) => {
89+
if (navigator.share) {
90+
event.preventDefault()
91+
// not defined for all browsers
92+
await navigator.share({
93+
url: clearnetShareLink
94+
})
95+
96+
}
97+
})
98+
99+
document.getElementById("dakrnetShareLink").addEventListener("click", async (event) => {
100+
if (navigator.share) {
101+
event.preventDefault()
102+
// not defined for all browsers
103+
await navigator.share({
104+
url: dakrnetShareLink
105+
})
106+
}
107+
})
87108
} catch (e) {
88109
alert('failed to save note: ' + e)
89110
}

views/template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<title>MokinToken: secure note sharing for the 2077 normalization</title>
77
<meta name="description" content="selfhosted e2e encrypted note sharing webapp" />
88
<meta name="viewport" content="width=device-width, initial-scale=1" />
9-
9+
<meta http-equiv="Permissions-Policy" content="web-share=self">
1010
<!-- todo param -->
1111
<meta name="clearnet" content="{{.Clearnet}}">
1212
<meta name="darknet" content="{{.Darknet}}">

0 commit comments

Comments
 (0)