@hanwha-ss1/plugin 0.3.6 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/plugin/openbrowser/OpenBrowserPlugin.java +10 -0
- package/dist/esm/definitions.d.ts +11 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.d.ts +4 -0
- package/dist/esm/web.js +3 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +3 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +3 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/OpenBrowser/OpenBrowserPlugin.swift +26 -0
- package/ios/Plugin/OpenBrowser/OpenBrowserService.swift +22 -0
- package/ios/Plugin/OpenBrowser/ViewController.swift +65 -0
- package/ios/Plugin/OpenBrowser/ViewController.xib +88 -0
- package/ios/Plugin/OpenBrowser/icon_close@2x.png +0 -0
- package/ios/Plugin/Plugin.m +1 -0
- package/ios/Plugin/Plugin.swift +5 -0
- package/package.json +1 -1
|
@@ -19,4 +19,14 @@ public class OpenBrowserPlugin extends Plugin {
|
|
|
19
19
|
ret.put("value", implementation.echo(value));
|
|
20
20
|
call.resolve(ret);
|
|
21
21
|
}
|
|
22
|
+
|
|
23
|
+
@PluginMethod
|
|
24
|
+
public void open(PluginCall call) {
|
|
25
|
+
String url = call.getString("url");
|
|
26
|
+
boolean isExternal = call.getBoolean("ext");
|
|
27
|
+
if(implementation == null) {
|
|
28
|
+
implementation = new OpenBrowser();
|
|
29
|
+
}
|
|
30
|
+
implementation.open(getActivity(), url, isExternal);
|
|
31
|
+
}
|
|
22
32
|
}
|
|
@@ -40,4 +40,15 @@ export interface Plugin {
|
|
|
40
40
|
timezone(): Promise<{
|
|
41
41
|
value: string;
|
|
42
42
|
}>;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @param options url : "웹 페이지 주소"
|
|
46
|
+
* @param options ext : false(내부 웹뷰), true(외부 브라우저)
|
|
47
|
+
*/
|
|
48
|
+
open(options: {
|
|
49
|
+
url: string;
|
|
50
|
+
ext: boolean;
|
|
51
|
+
}): Promise<{
|
|
52
|
+
value: string;
|
|
53
|
+
}>;
|
|
43
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface Plugin {\n /**\n * 앱 실행\n * @param options package : 패키지명\n */\n executeApp(options: {\n package: string;\n }): Promise<{ value: string }>;\n\n /**\n * 연락처 저장\n * @param options name : 성명\n * @param options phone : 전화번호\n * @param options email : 이메일\n * @param options dept : 소속\n * @param options ext : 내선번호\n */\n addContact(options: {\n name: string;\n phone: string;\n email: string;\n dept: string;\n ext: string;\n }): Promise<{ value: string }>;\n\n /**\n * TouchID, FaceID\n */\n auth(): Promise<{ value: string }>;\n\n /**\n * 시스템에 설정된 지역이 서울인지 확인\n */\n checkSeoulTimeZone(): Promise<{ value: string }>;\n\n timezone(): Promise<{ value: string }>;\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface Plugin {\n /**\n * 앱 실행\n * @param options package : 패키지명\n */\n executeApp(options: {\n package: string;\n }): Promise<{ value: string }>;\n\n /**\n * 연락처 저장\n * @param options name : 성명\n * @param options phone : 전화번호\n * @param options email : 이메일\n * @param options dept : 소속\n * @param options ext : 내선번호\n */\n addContact(options: {\n name: string;\n phone: string;\n email: string;\n dept: string;\n ext: string;\n }): Promise<{ value: string }>;\n\n /**\n * TouchID, FaceID\n */\n auth(): Promise<{ value: string }>;\n\n /**\n * 시스템에 설정된 지역이 서울인지 확인\n */\n checkSeoulTimeZone(): Promise<{ value: string }>;\n\n timezone(): Promise<{ value: string }>;\n\n /**\n *\n * @param options url : \"웹 페이지 주소\"\n * @param options ext : false(내부 웹뷰), true(외부 브라우저)\n */\n open(options: { url: string; ext: boolean; }): Promise<{ value: string }>;\n}\n\n"]}
|
package/dist/esm/web.d.ts
CHANGED
package/dist/esm/web.js
CHANGED
package/dist/esm/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,MAAM,OAAO,SAAU,SAAQ,SAAS;IAEtC,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAuC;QAChD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport {WebPlugin} from '@capacitor/core';\nimport type {Plugin} from './definitions';\n\nexport class PluginWeb extends WebPlugin implements Plugin {\n\n async executeApp(): Promise<any> {\n return { results: {} };\n }\n\n async addContact(): Promise<any> {\n return { results: {} };\n }\n\n async auth(): Promise<any> {\n return { results: {} };\n }\n\n async checkSeoulTimeZone(): Promise<any> {\n return { results: {} };\n }\n\n async timezone(): Promise<any> {\n return { results: {} };\n }\n\n async open(_options: { url: string, ext: boolean }): Promise<any> {\n return { results: {} };\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n async checkSeoulTimeZone() {\n return { results: {} };\n }\n async timezone() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACHD;AAEO,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n async checkSeoulTimeZone() {\n return { results: {} };\n }\n async timezone() {\n return { results: {} };\n }\n async open(_options) {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACHD;AAEO,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL;;;;;;;;;"}
|
package/dist/plugin.js
CHANGED
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n async checkSeoulTimeZone() {\n return { results: {} };\n }\n async timezone() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICHD;IAEO,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,QAAQ,GAAG;IACrB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n async checkSeoulTimeZone() {\n return { results: {} };\n }\n async timezone() {\n return { results: {} };\n }\n async open(_options) {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICHD;IAEO,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,QAAQ,GAAG;IACrB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;IACzB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import Capacitor
|
|
3
|
+
import Contacts
|
|
4
|
+
/**
|
|
5
|
+
* Please read the Capacitor iOS Plugin Development Guide
|
|
6
|
+
* here: https://capacitorjs.com/docs/plugins/ios
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
public class OpenBrowserPlugin: CAPPlugin {
|
|
10
|
+
private let implementation = OpenBrowserService()
|
|
11
|
+
|
|
12
|
+
@objc func openBrowser(_ call: CAPPluginCall, _bridge: CAPBridgeProtocol) {
|
|
13
|
+
let url = call.getString("url") ?? ""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
DispatchQueue.main.async {
|
|
17
|
+
let controller = self.implementation.builder(url: url)
|
|
18
|
+
controller.modalPresentationStyle = .fullScreen
|
|
19
|
+
|
|
20
|
+
_bridge.viewController?.present(controller, animated: true)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import UIKit
|
|
3
|
+
import LocalAuthentication
|
|
4
|
+
import Capacitor
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
public class OpenBrowserService: NSObject {
|
|
9
|
+
@objc public func builder(url: String) -> UIViewController {
|
|
10
|
+
let bundle = Bundle(for: self.classForCoder)
|
|
11
|
+
let controller = ViewController(nibName: "ViewController", bundle: bundle)
|
|
12
|
+
controller.url = url
|
|
13
|
+
return controller
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public func openBrowser(call: CAPPluginCall) {
|
|
17
|
+
call.resolve([
|
|
18
|
+
"result": true,
|
|
19
|
+
"message": "완료"
|
|
20
|
+
])
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ViewController.swift
|
|
3
|
+
// Plugin
|
|
4
|
+
//
|
|
5
|
+
// Created by HanWhaLee on 2022/10/07.
|
|
6
|
+
// Copyright © 2022 Max Lynch. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
import UIKit
|
|
10
|
+
import WebKit
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ViewController: UIViewController {
|
|
15
|
+
@IBOutlet var wkWebview: WKWebView!
|
|
16
|
+
@IBOutlet var btnClose: UIButton!
|
|
17
|
+
@IBOutlet var indicator: UIActivityIndicatorView!
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
var url: String = ""
|
|
21
|
+
var naviTitle: String = ""
|
|
22
|
+
|
|
23
|
+
override func viewDidLoad() {
|
|
24
|
+
super.viewDidLoad()
|
|
25
|
+
indicator.startAnimating()
|
|
26
|
+
wkWebview.navigationDelegate = self
|
|
27
|
+
wkWebview.load(URLRequest.init(url: URL(string: url)!))
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
// MARK: - Navigation
|
|
33
|
+
|
|
34
|
+
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
|
35
|
+
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
|
36
|
+
// Get the new view controller using segue.destination.
|
|
37
|
+
// Pass the selected object to the new view controller.
|
|
38
|
+
}
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
@IBAction func doClose() {
|
|
42
|
+
self.dismiss(animated: true)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
extension ViewController: WKNavigationDelegate {
|
|
48
|
+
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
|
49
|
+
indicator.stopAnimating()
|
|
50
|
+
webView.isHidden = false
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
|
|
54
|
+
|
|
55
|
+
let url = navigationAction.request.url?.absoluteString
|
|
56
|
+
|
|
57
|
+
if "close://" == url {
|
|
58
|
+
doClose()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
decisionHandler(.allow)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
|
3
|
+
<device id="retina6_0" orientation="portrait" appearance="light"/>
|
|
4
|
+
<dependencies>
|
|
5
|
+
<deployment identifier="iOS"/>
|
|
6
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
|
|
7
|
+
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
|
8
|
+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
9
|
+
</dependencies>
|
|
10
|
+
<objects>
|
|
11
|
+
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ViewController" customModule="HanwhaSs1Plugin" customModuleProvider="target">
|
|
12
|
+
<connections>
|
|
13
|
+
<outlet property="btnClose" destination="1PV-Mj-hAT" id="mlS-cq-Qaz"/>
|
|
14
|
+
<outlet property="indicator" destination="Vt7-sZ-fvc" id="LWz-jE-fvu"/>
|
|
15
|
+
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
|
|
16
|
+
<outlet property="wkWebview" destination="gNx-5x-FOs" id="rA7-7h-TvS"/>
|
|
17
|
+
</connections>
|
|
18
|
+
</placeholder>
|
|
19
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
20
|
+
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
|
|
21
|
+
<rect key="frame" x="0.0" y="0.0" width="390" height="844"/>
|
|
22
|
+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
23
|
+
<subviews>
|
|
24
|
+
<wkWebView hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gNx-5x-FOs">
|
|
25
|
+
<rect key="frame" x="0.0" y="95" width="390" height="715"/>
|
|
26
|
+
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
27
|
+
<wkWebViewConfiguration key="configuration">
|
|
28
|
+
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
|
29
|
+
<wkPreferences key="preferences"/>
|
|
30
|
+
</wkWebViewConfiguration>
|
|
31
|
+
</wkWebView>
|
|
32
|
+
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" animating="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="Vt7-sZ-fvc">
|
|
33
|
+
<rect key="frame" x="185" y="443" width="20" height="20"/>
|
|
34
|
+
</activityIndicatorView>
|
|
35
|
+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uoe-RW-I9y">
|
|
36
|
+
<rect key="frame" x="16" y="47" width="358" height="48"/>
|
|
37
|
+
<subviews>
|
|
38
|
+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ggB-EF-tKn">
|
|
39
|
+
<rect key="frame" x="310" y="0.0" width="48" height="48"/>
|
|
40
|
+
<subviews>
|
|
41
|
+
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1PV-Mj-hAT">
|
|
42
|
+
<rect key="frame" x="0.0" y="0.0" width="78" height="48"/>
|
|
43
|
+
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
|
44
|
+
<state key="normal" image="icon_close.png"/>
|
|
45
|
+
<connections>
|
|
46
|
+
<action selector="doClose" destination="-1" eventType="touchUpInside" id="Gr4-Oa-scu"/>
|
|
47
|
+
</connections>
|
|
48
|
+
</button>
|
|
49
|
+
</subviews>
|
|
50
|
+
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
51
|
+
<constraints>
|
|
52
|
+
<constraint firstAttribute="height" constant="48" id="1yX-lJ-u7H"/>
|
|
53
|
+
<constraint firstAttribute="trailing" secondItem="1PV-Mj-hAT" secondAttribute="trailing" constant="-30" id="7tb-jm-OtG"/>
|
|
54
|
+
<constraint firstAttribute="width" constant="48" id="RTc-AQ-7fF"/>
|
|
55
|
+
<constraint firstItem="1PV-Mj-hAT" firstAttribute="leading" secondItem="ggB-EF-tKn" secondAttribute="leading" id="aPF-d4-HZK"/>
|
|
56
|
+
<constraint firstItem="1PV-Mj-hAT" firstAttribute="top" secondItem="ggB-EF-tKn" secondAttribute="top" id="l02-cK-1sJ"/>
|
|
57
|
+
<constraint firstAttribute="bottom" secondItem="1PV-Mj-hAT" secondAttribute="bottom" id="y0O-NI-XKg"/>
|
|
58
|
+
</constraints>
|
|
59
|
+
</view>
|
|
60
|
+
</subviews>
|
|
61
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
62
|
+
<constraints>
|
|
63
|
+
<constraint firstItem="ggB-EF-tKn" firstAttribute="centerY" secondItem="Uoe-RW-I9y" secondAttribute="centerY" id="4gg-0z-qsr"/>
|
|
64
|
+
<constraint firstAttribute="height" constant="48" id="G6Y-b0-xtz"/>
|
|
65
|
+
<constraint firstAttribute="trailing" secondItem="ggB-EF-tKn" secondAttribute="trailing" id="I2k-Is-fHx"/>
|
|
66
|
+
</constraints>
|
|
67
|
+
</view>
|
|
68
|
+
</subviews>
|
|
69
|
+
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
|
|
70
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
71
|
+
<constraints>
|
|
72
|
+
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Uoe-RW-I9y" secondAttribute="trailing" constant="16" id="6is-dt-a4x"/>
|
|
73
|
+
<constraint firstItem="Uoe-RW-I9y" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="16" id="B7c-Sh-6EG"/>
|
|
74
|
+
<constraint firstItem="Vt7-sZ-fvc" firstAttribute="top" secondItem="ggB-EF-tKn" secondAttribute="bottom" constant="348" id="EGx-1y-d0l"/>
|
|
75
|
+
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="gNx-5x-FOs" secondAttribute="trailing" id="KUb-Em-jbo"/>
|
|
76
|
+
<constraint firstItem="gNx-5x-FOs" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ULf-Xk-qo3"/>
|
|
77
|
+
<constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="gNx-5x-FOs" secondAttribute="bottom" id="als-Ra-M5R"/>
|
|
78
|
+
<constraint firstItem="gNx-5x-FOs" firstAttribute="top" secondItem="Uoe-RW-I9y" secondAttribute="bottom" id="bGR-9m-8J5"/>
|
|
79
|
+
<constraint firstItem="Vt7-sZ-fvc" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="mkc-cw-JpA"/>
|
|
80
|
+
<constraint firstItem="Uoe-RW-I9y" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="tr7-Ux-Bpj"/>
|
|
81
|
+
</constraints>
|
|
82
|
+
<point key="canvasLocation" x="21.538461538461537" y="20.616113744075829"/>
|
|
83
|
+
</view>
|
|
84
|
+
</objects>
|
|
85
|
+
<resources>
|
|
86
|
+
<image name="icon_close.png" width="24" height="24"/>
|
|
87
|
+
</resources>
|
|
88
|
+
</document>
|
|
Binary file
|
package/ios/Plugin/Plugin.m
CHANGED
package/ios/Plugin/Plugin.swift
CHANGED