|
2 | 2 |
|
3 | 3 | import _ from 'lodash'
|
4 | 4 |
|
5 |
| -const { remote, shell } = window.require('electron') |
6 |
| - |
7 | 5 | import { LinkingCrossPlatform } from './index'
|
| 6 | +import { Linking as LinkingOriginal } from './index-native' |
8 | 7 |
|
9 | 8 | const eventHandlers = new Map()
|
10 | 9 |
|
11 | 10 | export const Linking: LinkingCrossPlatform = {
|
12 | 11 | addEventListener: (type: string, handler: any) => {
|
13 | 12 | if (!(type === 'url' && typeof handler === 'function')) return
|
14 | 13 |
|
15 |
| - const wrapHandler = (_event: object, url: string) => { |
| 14 | + const wrapHandler = (_e: any, url: string) => { |
16 | 15 | handler({ type, url })
|
17 | 16 | }
|
18 | 17 |
|
19 | 18 | eventHandlers.set(handler, wrapHandler)
|
20 |
| - remote.app.on('open-url', wrapHandler) |
| 19 | + window.ipc.addListener('open-url', wrapHandler) |
21 | 20 | },
|
22 |
| - async canOpenURL() { |
23 |
| - return true |
| 21 | + async canOpenURL(url: string) { |
| 22 | + return LinkingOriginal.canOpenURL(url) |
24 | 23 | },
|
25 | 24 | async getInitialURL() {
|
26 |
| - return remote.process.argv[1] || null |
| 25 | + return '' |
27 | 26 | },
|
28 |
| - openURL: (url: string, options?: object): Promise<void> => { |
29 |
| - return shell.openExternal(url, options) |
30 |
| - ? Promise.resolve() |
31 |
| - : Promise.reject(new Error('Could not open URL')) |
| 27 | + openURL: (url: string): Promise<void> => { |
| 28 | + return LinkingOriginal.openURL(url) |
32 | 29 | },
|
33 | 30 | removeEventListener: (type: string, handler: any) => {
|
34 | 31 | if (!(type === 'url' && typeof handler === 'function')) return
|
35 | 32 |
|
36 | 33 | const wrapHandler = eventHandlers.get(handler)
|
37 | 34 | if (wrapHandler) {
|
38 |
| - remote.app.removeListener('open-url', wrapHandler) |
| 35 | + window.ipc.removeListener('open-url', wrapHandler) |
39 | 36 | }
|
40 | 37 |
|
41 | 38 | eventHandlers.delete(handler)
|
|
0 commit comments