Skip to content

Commit

Permalink
0.6.2.8 publish
Browse files Browse the repository at this point in the history
  • Loading branch information
Kyun-J committed Dec 16, 2020
1 parent 640561e commit 6ffb05e
Show file tree
Hide file tree
Showing 10 changed files with 431 additions and 427 deletions.
66 changes: 34 additions & 32 deletions demo/flex-demo/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,37 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
enum TestError: Error {
case test
}


let testReceive = FlexClosure.array { (arguments) -> Array<Any?>? in
let data = arguments[0].asDictionary()!
let dicData: [String:FlexData] = data["d2"]!.reified()!
print("\(data["d1"]!.asInt()!) \(dicData)")
var returnValue: [Any?] = []
returnValue.append(10)
returnValue.append(24123.54235234)
returnValue.append([])
returnValue.append(false)
returnValue.append("test value")
return returnValue
}

let testAction = FlexClosure.action { (action, arguments) in
action.onFinished = {
print("action finished!")
}
// code works in background...
var returnValue: [String:Any] = [:]
var dictionaryValue: [String:Any] = [:]
dictionaryValue["subkey1"] = ["dictionaryValue",0.12]
dictionaryValue["subkey2"] = 1000.100
returnValue["key1"] = "value1"
returnValue["key2"] = dictionaryValue
returnValue["key3"] = ["arrayValue1",nil]
// Promise return to Web
// PromiseReturn can be called at any time.
action.promiseReturn(returnValue)
}

override func viewDidLoad() {
super.viewDidLoad()

Expand Down Expand Up @@ -46,38 +76,10 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
}
}

component.arrayInterface("testReceive")
{ (arguments) -> Array<Any?> in
let data = arguments[0].asDictionary()!
let dicData: [String:FlexData] = data["d2"]!.reified()!
print("\(data["d1"]!.asInt()!) \(dicData)")
var returnValue: [Any?] = []
returnValue.append(10)
returnValue.append(24123.54235234)
returnValue.append([])
returnValue.append(false)
returnValue.append("test value")
return returnValue
}
component.arrayInterface("testReceive", testReceive)

// add FlexAction
component.setAction("testAction")
{ (action, arguments) -> Void in
action.onFinished = {
print("action finished!")
}
// code works in background...
var returnValue: [String:Any] = [:]
var dictionaryValue: [String:Any] = [:]
dictionaryValue["subkey1"] = ["dictionaryValue",0.12]
dictionaryValue["subkey2"] = 1000.100
returnValue["key1"] = "value1"
returnValue["key2"] = dictionaryValue
returnValue["key3"] = ["arrayValue1",nil]
// Promise return to Web
// PromiseReturn can be called at any time.
action.promiseReturn(returnValue)
}
component.setAction("testAction", testAction)

// test JS Reject
component.dictionaryInterface("testReject1")
Expand Down Expand Up @@ -134,7 +136,7 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
mWebView.load(URLRequest(url: URL(fileURLWithPath: Bundle.main.path(forResource: "test", ofType: "html")!)))

// add user-custom contentController
component.configration.userContentController.add(self, name: "userCC")
component.configuration.userContentController.add(self, name: "userCC")
}

override func viewWillAppear(_ animated: Bool) {
Expand Down
2 changes: 1 addition & 1 deletion demo/flex-demo/test.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
window.onFlexLoad = function() {
console.log('Flex Load Success!!');
$flex.web.help = function(data) {
console.log('Received by Native ---- ' + data);
console.log('Received by Native ---- ' + String(data));
return Promise.resolve(['Thanks Flex!', null])
}
$flex.web.directTest = () => {
Expand Down
8 changes: 4 additions & 4 deletions framework/flexhybridapp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 24;
CURRENT_PROJECT_VERSION = 25;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 7V78M894K4;
DYLIB_COMPATIBILITY_VERSION = 1;
Expand All @@ -327,7 +327,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 0.6.2.4;
MARKETING_VERSION = 0.6.2.8;
PRODUCT_BUNDLE_IDENTIFIER = app.dvkyun.flexhybridapp;
PRODUCT_NAME = FlexHybridApp;
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -345,7 +345,7 @@
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 24;
CURRENT_PROJECT_VERSION = 25;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
Expand All @@ -359,7 +359,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 0.6.2.4;
MARKETING_VERSION = 0.6.2.8;
PRODUCT_BUNDLE_IDENTIFIER = app.dvkyun.flexhybridapp;
PRODUCT_NAME = FlexHybridApp;
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
76 changes: 37 additions & 39 deletions framework/flexhybridapp/FlexData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,57 +10,63 @@ import Foundation

public class FlexData {
private let data: Any?
public let type: DataType
public let type: Type

public enum DataType {
public enum Type {
case NIL
case STRING
case INT
case DOUBLE
case FLOAT
case BOOL
case ARRAY
case DICTIONARY
case ERR
}

internal init() {
data = nil
type = DataType.NIL
type = Type.NIL
}

internal init(_ data: String) {
self.data = data
type = DataType.STRING
type = Type.STRING
}

internal init(_ data: Int) {
self.data = data
type = DataType.INT
type = Type.INT
}

internal init(_ data: Double) {
self.data = data
type = DataType.DOUBLE
type = Type.DOUBLE
}

internal init(_ data: Float) {
self.data = data
type = DataType.FLOAT
type = Type.FLOAT
}

internal init(_ data: Bool) {
self.data = data
type = Type.BOOL
}

internal init(_ data: Array<FlexData>) {
self.data = data
type = DataType.ARRAY
type = Type.ARRAY
}

internal init(_ data: Dictionary<String,FlexData>) {
self.data = data
type = DataType.DICTIONARY
type = Type.DICTIONARY
}

internal init(_ data: BrowserException) {
self.data = data
type = DataType.ERR
type = Type.ERR
}

public func isNil() -> Bool {
Expand All @@ -69,7 +75,7 @@ public class FlexData {

public func asString() -> String? {
if isNil() { return nil }
if(type != DataType.STRING) {
if(type != Type.STRING) {
FlexMsg.err(FlexString.ERROR8)
return nil
}
Expand All @@ -79,11 +85,11 @@ public class FlexData {
public func asInt() -> Int? {
if isNil() { return nil }
switch type {
case DataType.INT:
case Type.INT:
return (data as! Int)
case DataType.DOUBLE:
case Type.DOUBLE:
return Int((data as! Double))
case DataType.FLOAT:
case Type.FLOAT:
return Int((data as! Float))
default:
FlexMsg.err(FlexString.ERROR8)
Expand All @@ -94,11 +100,11 @@ public class FlexData {
public func asFloat() -> Float? {
if isNil() { return nil }
switch type {
case DataType.INT:
case Type.INT:
return Float((data as! Int))
case DataType.DOUBLE:
case Type.DOUBLE:
return Float((data as! Double))
case DataType.FLOAT:
case Type.FLOAT:
return (data as! Float)
default:
FlexMsg.err(FlexString.ERROR8)
Expand All @@ -109,11 +115,11 @@ public class FlexData {
public func asDouble() -> Double? {
if isNil() { return nil }
switch type {
case DataType.INT:
case Type.INT:
return Double((data as! Int))
case DataType.DOUBLE:
case Type.DOUBLE:
return (data as! Double)
case DataType.FLOAT:
case Type.FLOAT:
return Double((data as! Float))
default:
FlexMsg.err(FlexString.ERROR8)
Expand All @@ -123,24 +129,16 @@ public class FlexData {

public func asBool() -> Bool? {
if isNil() { return nil }
if(type != DataType.INT) {
if(type != Type.BOOL) {
FlexMsg.err(FlexString.ERROR8)
return nil
}
let temp = data as! Int
switch(temp) {
case 1: return true
case 0: return false
default: do {
FlexMsg.err(FlexString.ERROR8)
return nil
}
}
return (data as! Bool)
}

public func asArray() -> Array<FlexData>? {
if isNil() { return nil }
if(type != DataType.ARRAY) {
if(type != Type.ARRAY) {
FlexMsg.err(FlexString.ERROR8)
return nil
}
Expand All @@ -149,7 +147,7 @@ public class FlexData {

public func asDictionary() -> Dictionary<String,FlexData>? {
if isNil() { return nil }
if(type != DataType.DICTIONARY) {
if(type != Type.DICTIONARY) {
FlexMsg.err(FlexString.ERROR8)
return nil
}
Expand All @@ -158,7 +156,7 @@ public class FlexData {

public func asErr() -> BrowserException? {
if isNil() { return nil }
if(type != DataType.ERR) {
if(type != Type.ERR) {
FlexMsg.err(FlexString.ERROR8)
return nil
}
Expand All @@ -167,12 +165,12 @@ public class FlexData {

public func toString() -> String? {
switch type {
case DataType.NIL: return nil
case DataType.STRING: return asString()!
case DataType.INT: return String(asInt()!)
case DataType.DOUBLE: return String(asDouble()!)
case DataType.FLOAT: return String(asFloat()!)
case DataType.ERR: return asErr()!.reason
case Type.NIL: return nil
case Type.STRING: return asString()!
case Type.INT: return String(asInt()!)
case Type.DOUBLE: return String(asDouble()!)
case Type.FLOAT: return String(asFloat()!)
case Type.ERR: return asErr()!.reason
default:
FlexMsg.err(FlexString.ERROR8)
return nil
Expand Down
Loading

0 comments on commit 6ffb05e

Please sign in to comment.