Some checks failed
integration tests / run-integration-tests (windows-latest) (push) Has been cancelled
Test Rust / test (push) Has been cancelled
test plugins e2e (mobile) / ios (push) Has been cancelled
test plugins e2e / test (map[name:Windows os:windows-latest]) (push) Has been cancelled
test plugins e2e / test (map[name:macOS os:macos-latest]) (push) Has been cancelled
integration tests / run-integration-tests (macos-latest) (push) Has been cancelled
version or publish / version-or-publish (push) Failing after 0s
integration tests / run-integration-tests (ubuntu-22.04) (push) Failing after 0s
Lint JavaScript / eslint (push) Failing after 0s
Sync / sync-to-mirrors (push) Failing after 0s
test plugins e2e (mobile) / android (push) Failing after 0s
test plugins e2e / test (map[name:Linux os:ubuntu-latest]) (push) Failing after 0s
Test Rust / changes (push) Failing after 0s
Lint Rust / changes (push) Failing after 0s
Lint Rust / clippy (push) Has been skipped
Audit Rust / audit-rust (push) Failing after 1s
Audit JavaScript / audit-js (push) Failing after 1s
35 lines
848 B
Swift
35 lines
848 B
Swift
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import Foundation
|
|
|
|
import SwiftRs
|
|
import Tauri
|
|
import UIKit
|
|
import WebKit
|
|
|
|
class ShellPlugin: Plugin {
|
|
|
|
@objc public func open(_ invoke: Invoke) throws {
|
|
do {
|
|
let urlString = try invoke.parseArgs(String.self)
|
|
if let url = URL(string: urlString) {
|
|
if #available(iOS 10, *) {
|
|
UIApplication.shared.open(url, options: [:])
|
|
} else {
|
|
UIApplication.shared.openURL(url)
|
|
}
|
|
}
|
|
invoke.resolve()
|
|
} catch {
|
|
invoke.reject(error.localizedDescription)
|
|
}
|
|
}
|
|
}
|
|
|
|
@_cdecl("init_plugin_shell")
|
|
func initPlugin() -> Plugin {
|
|
return ShellPlugin()
|
|
}
|