From 56e23d033c26535447620fa2a9b2a4bd876c83da Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Fri, 1 Jul 2022 16:03:21 +0800 Subject: [PATCH] wip(uts): update compiler --- .../test-uniplugin/ios/src/TestModuleImpl.uts | 28 ------ .../ios/src/TestSwiftComponent.uts | 83 ++++++++++++++++++ .../ios/src/TestSwiftModule.uts | 66 ++++++++++++++ .../ios/src/TestModuleImpl.swift | 12 --- .../ios/src/TestSwiftComponent.swift | 52 +++++++++++ .../ios/src/TestSwiftModule.swift | 26 ++++++ .../uts-darwin-arm64/uts.darwin-arm64.node | Bin 2822584 -> 2872408 bytes packages/uts-darwin-x64/uts.darwin-x64.node | Bin 3166144 -> 3232304 bytes .../uts.win32-ia32-msvc.node | Bin 3904000 -> 4062208 bytes .../uts.win32-x64-msvc.node | Bin 3650560 -> 3781120 bytes 10 files changed, 227 insertions(+), 40 deletions(-) delete mode 100644 packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestModuleImpl.uts create mode 100644 packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftComponent.uts create mode 100644 packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftModule.uts delete mode 100644 packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestModuleImpl.swift create mode 100644 packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftComponent.swift create mode 100644 packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftModule.swift diff --git a/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestModuleImpl.uts b/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestModuleImpl.uts deleted file mode 100644 index 19f8e1881..000000000 --- a/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestModuleImpl.uts +++ /dev/null @@ -1,28 +0,0 @@ -import "Foundation"; -// -// TestModuleImpl.swift -// libWeex -// -// Created by dcloud on 2022/6/1. -// Copyright © 2022 DCloud. All rights reserved. -// - -@objcMembers -class TestModuleImpl extends NSObject { - testAsyncFunc(option: NSDictionary, callback: UniModuleKeepAliveCallback) { - // options 为 js 端调用此方法时传递的参数 - console.log(option) - // // 可以在该方法中实现原生能力,然后通过 callback 回调到 js - // - // // 回调方法,传递参数给 js 端 注:只支持返回 String 或 NSDictionary (map) 类型 - // 第一个参数为回传给js端的数据,第二个参数为标识,表示该回调方法是否支持多次调用,如果原生端需要多次回调js端则第二个参数传 YES; - callback('success', false) - } - - /// 同步方法(注:同步方法会在 js 线程执行) - /// @param options js 端调用方法时传递的参数 - testSyncFunc(option: NSDictionary): string { - console.log(option) - return '' - } -} diff --git a/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftComponent.uts b/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftComponent.uts new file mode 100644 index 000000000..baefbb7a6 --- /dev/null +++ b/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftComponent.uts @@ -0,0 +1,83 @@ +// +// TestSwiftComponent.swift +// DCTestSwiftPlugin +// +// Created by Dcloud-XHY on 2022/6/28. +// + +import 'UIKit' +import 'MapKit' + +// 必须添加 @objc(类名),编译器才会生成对应的 oc 方法 +@objc(TestSwiftComponent) +class TestSwiftComponent implements DCUniComponent, MKMapViewDelegate { + mapLoadedEvent = false + showTraffic = false + mapView?: MKMapView = null + + // 初始化方法 + override onCreateComponent( + ref: String, + type: String, + styles: [AnyHashable: Any], + attributes: [AnyHashable: Any], + events: [Any], + uniInstance: DCUniSDKInstance + ) { + // NSDictionary 转换为 swift 的 [AnyHashable : Any] ,解析参数需要使用 [AnyHashable("key")] + this.showTraffic = DCUniConvert.bool( + attributes[AnyHashable('showTraffic')] ?? false + ) + } + + override loadView(): UIView { + this.mapView = MKMapView.init() + return this.mapView! + } + + override viewDidLoad() { + this.mapView!.delegate = this + if (this.showTraffic) { + this.mapView.showsTraffic = true + } + } + + // 监听属性变化方法 + override updateAttributes(attributes: [AnyHashable: Any] =new Dictionary()) { + if (attributes['showsTraffic'] != null) { + this.showTraffic = DCUniConvert.bool( + attributes[AnyHashable('showsTraffic')]! + ) + this.mapView.showsTraffic = this.showTraffic + } + } + + // 监听注册事件方法 + override addEvent(eventName: String) { + if (eventName == 'mapLoaded') { + this.mapLoadedEvent = true + } + } + + override removeEvent(eventName: String) { + if (eventName == 'mapLoaded') { + this.mapLoadedEvent = false + } + } + + @objc public static wx_export_method_0(): String { + return 'focus:' + } + + @objc focus(options: NSDictionary) { + print(options) + } + + // MARK: - MKMapViewDelegate + mapViewDidFinishLoadingMap(mapView: MKMapView) { + if (this.mapLoadedEvent) { + // 回调 event 事件 + this.fireEvent('mapLoaded', { mapLoaded: 'success' }) + } + } +} diff --git a/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftModule.uts b/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftModule.uts new file mode 100644 index 000000000..b2ef25ea2 --- /dev/null +++ b/packages/playground/uts/nativeplugins/test-uniplugin/ios/src/TestSwiftModule.uts @@ -0,0 +1,66 @@ +// +// TestSwiftModule.swift +// DCTestSwiftPlugin +// +// Created by Dcloud-XHY on 2022/6/27. +// + +//import UIKit + +// 必须添加 @objc(类名),编译器才会生成对应的 oc 方法 +@objc(TestSwiftModule) +class TestSwiftModule extends DCUniModule { + + // 暴露异步方法供js调用: + // 1.必须添加 @objc 前缀, + // 2.使用 public static 静态方法 + // 3.方法名称必须是以 wx_export_method_ 开头,后面随意拼接一个字符保证唯一性即可 + // 4.方法返回实例方法的名称 + // 注意点:swift 方法名称转换为 oc 方法名称时系统会自动将首个参数用 with 拼接到方法名中作为方法名的一部分 如下实例 + // testAsyncFunc(options:callback:) -> testAsyncFuncWithOptions:callback + // js 中调用方法 testAsyncFuncWithOptions(options,callabck) + // 可以在参数前面加上 _ 让编译器忽略拼接参数 + @objc public static wx_export_method_0() : String { + return "testAsyncFunc::" + } + + // 需要暴露的实例方法 + // 1.必须添加 @objc 前缀 + // 2.首个参数需要添加 _ 忽略外部参数 其他参数可选 + @objc testAsyncFunc(options: NSDictionary,callback?: UniModuleKeepAliveCallback) { + print(options) + + if (callback != null) { + callback!("success",false) + } + } + + // 暴露同步方法供js调用: + // 1.必须添加 @objc 前缀, + // 2.使用 public static 静态方法 + // 3.方法名称必须是以 wx_export_method_sync_ 开头,后面随意拼接一个字符保证唯一性即可 + // 4.方法返回实例方法的名称 + // 注意点:swift 方法名称转换为 oc 方法名称时系统会自动将首个参数名首字符大写然后用 with 拼接到方法名中作为方法名的一部分 如下实例 + // testSyncFunc(options:) -> testSyncFuncWithOptions: + // js 中调用方法 var value = testSyncFuncWithOptions(options) + @objc public static wx_export_method_sync_0() : String { + return "testSyncFunc:" + } + + // 需要暴露的实例方法 + // 1.必须添加 @objc 前缀 + // 2.首个参数需要添加 _ 忽略外部参数 + @objc testSyncFunc(options: NSDictionary) : String { + + print(options); + + // 暴露方法内部可以调用其他 swift 方法 + return getSomeString(); + } + + + // 不需要直接暴露给js的方法不需要添加前缀 + getSomeString() : String { + return "getSomeString success" + } +} diff --git a/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestModuleImpl.swift b/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestModuleImpl.swift deleted file mode 100644 index 79ef525a1..000000000 --- a/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestModuleImpl.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Foundation; -@objcMembers -class TestModuleImpl : NSObject { - func testAsyncFunc(_ option: NSDictionary, _ callback: UniModuleKeepAliveCallback) { - console.log(option); - callback("success", false); - } - func testSyncFunc(_ option: NSDictionary) -> String { - console.log(option); - return ""; - } -} diff --git a/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftComponent.swift b/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftComponent.swift new file mode 100644 index 000000000..c47cc8259 --- /dev/null +++ b/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftComponent.swift @@ -0,0 +1,52 @@ +import UIKit; +import MapKit; +@objc(TestSwiftComponent) +class TestSwiftComponent : DCUniComponent, MKMapViewDelegate { + var mapLoadedEvent = false; + var showTraffic = false; + var mapView: MKMapView? = nil; + override func onCreateComponent(_ ref: String, _ type: String, _ styles: [AnyHashable: Any], _ attributes: [AnyHashable: Any], _ events: [Any], _ uniInstance: DCUniSDKInstance) { + self.showTraffic = DCUniConvert.bool(attributes[AnyHashable("showTraffic")] ?? false); + } + override func loadView() -> UIView { + self.mapView = MKMapView.init(); + return self.mapView!; + } + override func viewDidLoad() { + self.mapView!.delegate = self; + if (self.showTraffic) { + self.mapView.showsTraffic = true; + } + } + override func updateAttributes(_ attributes: [AnyHashable: Any] = Dictionary()) { + if (attributes["showsTraffic"] != nil) { + self.showTraffic = DCUniConvert.bool(attributes[AnyHashable("showsTraffic")]!); + self.mapView.showsTraffic = self.showTraffic; + } + } + override func addEvent(_ eventName: String) { + if (eventName == "mapLoaded") { + self.mapLoadedEvent = true; + } + } + override func removeEvent(_ eventName: String) { + if (eventName == "mapLoaded") { + self.mapLoadedEvent = false; + } + } + @objc + public static func wx_export_method_0() -> String { + return "focus:"; + } + @objc + func focus(_ options: NSDictionary) { + print(options); + } + func mapViewDidFinishLoadingMap(_ mapView: MKMapView) { + if (self.mapLoadedEvent) { + self.fireEvent("mapLoaded", { + mapLoaded: "success" + }); + } + } +} diff --git a/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftModule.swift b/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftModule.swift new file mode 100644 index 000000000..9287b118c --- /dev/null +++ b/packages/playground/uts/unpackage/nativeplugins/test-uniplugin-ios/ios/src/TestSwiftModule.swift @@ -0,0 +1,26 @@ +@objc(TestSwiftModule) +class TestSwiftModule : DCUniModule { + @objc + public static func wx_export_method_0() -> String { + return "testAsyncFunc::"; + } + @objc + func testAsyncFunc(_ options: NSDictionary, _ callback: UniModuleKeepAliveCallback?) { + print(options); + if (callback != nil) { + callback!("success", false); + } + } + @objc + public static func wx_export_method_sync_0() -> String { + return "testSyncFunc:"; + } + @objc + func testSyncFunc(_ options: NSDictionary) -> String { + print(options); + return getSomeString(); + } + func getSomeString() -> String { + return "getSomeString success"; + } +} diff --git a/packages/uts-darwin-arm64/uts.darwin-arm64.node b/packages/uts-darwin-arm64/uts.darwin-arm64.node index 274f87c9bd74700183f2c92c47b41555b7a80513..4690a2f910ca7e45134bdadea4ddf1250c32cf6f 100755 GIT binary patch delta 565299 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