iOS: support swift plugin and library
This commit is contained in:
parent
e981944352
commit
01b30f48bb
@ -13,6 +13,7 @@
|
|||||||
8BCADA7C23CD5B65005EEF96 /* NavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BCADA7B23CD5B64005EEF96 /* NavigationController.m */; };
|
8BCADA7C23CD5B65005EEF96 /* NavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BCADA7B23CD5B64005EEF96 /* NavigationController.m */; };
|
||||||
8BE3A340287C098100D399FA /* DoricPanelListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BE3A33E287C098000D399FA /* DoricPanelListViewController.m */; };
|
8BE3A340287C098100D399FA /* DoricPanelListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BE3A33E287C098000D399FA /* DoricPanelListViewController.m */; };
|
||||||
D751D4B065D8D4FA6594B5EE /* DemoVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D751D19E97EF4EDD7588FEBE /* DemoVC.m */; };
|
D751D4B065D8D4FA6594B5EE /* DemoVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D751D19E97EF4EDD7588FEBE /* DemoVC.m */; };
|
||||||
|
D751D7B06B4A1305879FCAA0 /* DemoSwiftLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = D751D9EDC0E8CEFFABAF3DEA /* DemoSwiftLibrary.swift */; };
|
||||||
D751DDB012BAF476A252CD93 /* DemoLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = D751D2175D09F2C10691FB81 /* DemoLibrary.m */; };
|
D751DDB012BAF476A252CD93 /* DemoLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = D751D2175D09F2C10691FB81 /* DemoLibrary.m */; };
|
||||||
E2334AF022E9D2060098A085 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334AEF22E9D2060098A085 /* AppDelegate.m */; };
|
E2334AF022E9D2060098A085 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334AEF22E9D2060098A085 /* AppDelegate.m */; };
|
||||||
E2334AF322E9D2060098A085 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334AF222E9D2060098A085 /* ViewController.m */; };
|
E2334AF322E9D2060098A085 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334AF222E9D2060098A085 /* ViewController.m */; };
|
||||||
@ -23,6 +24,7 @@
|
|||||||
E2334B0822E9D2070098A085 /* ExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334B0722E9D2070098A085 /* ExampleTests.m */; };
|
E2334B0822E9D2070098A085 /* ExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334B0722E9D2070098A085 /* ExampleTests.m */; };
|
||||||
E2334B1322E9D2070098A085 /* ExampleUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334B1222E9D2070098A085 /* ExampleUITests.m */; };
|
E2334B1322E9D2070098A085 /* ExampleUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2334B1222E9D2070098A085 /* ExampleUITests.m */; };
|
||||||
E24217DA287E999900F4DBEA /* DoricEmbeddedExampleVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E24217D9287E999900F4DBEA /* DoricEmbeddedExampleVC.m */; };
|
E24217DA287E999900F4DBEA /* DoricEmbeddedExampleVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E24217D9287E999900F4DBEA /* DoricEmbeddedExampleVC.m */; };
|
||||||
|
E29908682A57C48A00272415 /* DemoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29908672A57C48A00272415 /* DemoVC.swift */; };
|
||||||
E2C9315923B0A263007933D9 /* src in Resources */ = {isa = PBXBuildFile; fileRef = E2C9315823B0A263007933D9 /* src */; };
|
E2C9315923B0A263007933D9 /* src in Resources */ = {isa = PBXBuildFile; fileRef = E2C9315823B0A263007933D9 /* src */; };
|
||||||
E2EF0C0F275F6702007801C5 /* iconfont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E2EF0C0E275F6702007801C5 /* iconfont.ttf */; };
|
E2EF0C0F275F6702007801C5 /* iconfont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E2EF0C0E275F6702007801C5 /* iconfont.ttf */; };
|
||||||
E2EF0C13275F6934007801C5 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = E2EF0C12275F6934007801C5 /* assets */; };
|
E2EF0C13275F6934007801C5 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = E2EF0C12275F6934007801C5 /* assets */; };
|
||||||
@ -60,6 +62,7 @@
|
|||||||
B93D4DB00FD244178B7CE7C4 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig"; sourceTree = "<group>"; };
|
B93D4DB00FD244178B7CE7C4 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
D751D19E97EF4EDD7588FEBE /* DemoVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoVC.m; sourceTree = "<group>"; };
|
D751D19E97EF4EDD7588FEBE /* DemoVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoVC.m; sourceTree = "<group>"; };
|
||||||
D751D2175D09F2C10691FB81 /* DemoLibrary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoLibrary.m; sourceTree = "<group>"; };
|
D751D2175D09F2C10691FB81 /* DemoLibrary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoLibrary.m; sourceTree = "<group>"; };
|
||||||
|
D751D9EDC0E8CEFFABAF3DEA /* DemoSwiftLibrary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoSwiftLibrary.swift; sourceTree = "<group>"; };
|
||||||
D751DB0CB3009E12990F661E /* DemoLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoLibrary.h; sourceTree = "<group>"; };
|
D751DB0CB3009E12990F661E /* DemoLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoLibrary.h; sourceTree = "<group>"; };
|
||||||
D751DDEC114E037231257E64 /* DemoVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoVC.h; sourceTree = "<group>"; };
|
D751DDEC114E037231257E64 /* DemoVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoVC.h; sourceTree = "<group>"; };
|
||||||
D91241144B5A3356A3C60644 /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig"; sourceTree = "<group>"; };
|
D91241144B5A3356A3C60644 /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
@ -81,6 +84,8 @@
|
|||||||
E2334B1422E9D2070098A085 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
E2334B1422E9D2070098A085 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
E24217D9287E999900F4DBEA /* DoricEmbeddedExampleVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DoricEmbeddedExampleVC.m; sourceTree = "<group>"; };
|
E24217D9287E999900F4DBEA /* DoricEmbeddedExampleVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DoricEmbeddedExampleVC.m; sourceTree = "<group>"; };
|
||||||
E24217DB287E99D100F4DBEA /* DoricEmbeddedExampleVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DoricEmbeddedExampleVC.h; sourceTree = "<group>"; };
|
E24217DB287E99D100F4DBEA /* DoricEmbeddedExampleVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DoricEmbeddedExampleVC.h; sourceTree = "<group>"; };
|
||||||
|
E29908672A57C48A00272415 /* DemoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoVC.swift; sourceTree = "<group>"; };
|
||||||
|
E29908692A57C4DF00272415 /* Example-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
E2C9315823B0A263007933D9 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = "../../../doric-demo/bundle/src"; sourceTree = "<group>"; };
|
E2C9315823B0A263007933D9 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = "../../../doric-demo/bundle/src"; sourceTree = "<group>"; };
|
||||||
E2EF0C0E275F6702007801C5 /* iconfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = iconfont.ttf; path = "../../doric-demo/bundle/assets/iconfont.ttf"; sourceTree = "<group>"; };
|
E2EF0C0E275F6702007801C5 /* iconfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = iconfont.ttf; path = "../../doric-demo/bundle/assets/iconfont.ttf"; sourceTree = "<group>"; };
|
||||||
E2EF0C12275F6934007801C5 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = "../../../doric-demo/bundle/assets"; sourceTree = "<group>"; };
|
E2EF0C12275F6934007801C5 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = "../../../doric-demo/bundle/assets"; sourceTree = "<group>"; };
|
||||||
@ -189,6 +194,9 @@
|
|||||||
E24217DB287E99D100F4DBEA /* DoricEmbeddedExampleVC.h */,
|
E24217DB287E99D100F4DBEA /* DoricEmbeddedExampleVC.h */,
|
||||||
E2F3CCAF2918B44800772FF1 /* DemoSSRVC.m */,
|
E2F3CCAF2918B44800772FF1 /* DemoSSRVC.m */,
|
||||||
E2F3CCB12918B49500772FF1 /* DemoSSRVC.h */,
|
E2F3CCB12918B49500772FF1 /* DemoSSRVC.h */,
|
||||||
|
E29908672A57C48A00272415 /* DemoVC.swift */,
|
||||||
|
E29908692A57C4DF00272415 /* Example-Bridging-Header.h */,
|
||||||
|
D751D9EDC0E8CEFFABAF3DEA /* DemoSwiftLibrary.swift */,
|
||||||
);
|
);
|
||||||
path = Example;
|
path = Example;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -457,12 +465,14 @@
|
|||||||
8BE3A340287C098100D399FA /* DoricPanelListViewController.m in Sources */,
|
8BE3A340287C098100D399FA /* DoricPanelListViewController.m in Sources */,
|
||||||
E2334AF322E9D2060098A085 /* ViewController.m in Sources */,
|
E2334AF322E9D2060098A085 /* ViewController.m in Sources */,
|
||||||
E2334AFE22E9D2070098A085 /* main.m in Sources */,
|
E2334AFE22E9D2070098A085 /* main.m in Sources */,
|
||||||
|
E29908682A57C48A00272415 /* DemoVC.swift in Sources */,
|
||||||
E24217DA287E999900F4DBEA /* DoricEmbeddedExampleVC.m in Sources */,
|
E24217DA287E999900F4DBEA /* DoricEmbeddedExampleVC.m in Sources */,
|
||||||
E2334AF022E9D2060098A085 /* AppDelegate.m in Sources */,
|
E2334AF022E9D2060098A085 /* AppDelegate.m in Sources */,
|
||||||
E2F3CCB02918B44800772FF1 /* DemoSSRVC.m in Sources */,
|
E2F3CCB02918B44800772FF1 /* DemoSSRVC.m in Sources */,
|
||||||
D751D4B065D8D4FA6594B5EE /* DemoVC.m in Sources */,
|
D751D4B065D8D4FA6594B5EE /* DemoVC.m in Sources */,
|
||||||
D751DDB012BAF476A252CD93 /* DemoLibrary.m in Sources */,
|
D751DDB012BAF476A252CD93 /* DemoLibrary.m in Sources */,
|
||||||
8BCADA7C23CD5B65005EEF96 /* NavigationController.m in Sources */,
|
8BCADA7C23CD5B65005EEF96 /* NavigationController.m in Sources */,
|
||||||
|
D751D7B06B4A1305879FCAA0 /* DemoSwiftLibrary.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -636,6 +646,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 7EE2RX3L3P;
|
DEVELOPMENT_TEAM = 7EE2RX3L3P;
|
||||||
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
||||||
INFOPLIST_FILE = Example/Info.plist;
|
INFOPLIST_FILE = Example/Info.plist;
|
||||||
@ -660,6 +671,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 7EE2RX3L3P;
|
DEVELOPMENT_TEAM = 7EE2RX3L3P;
|
||||||
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
||||||
INFOPLIST_FILE = Example/Info.plist;
|
INFOPLIST_FILE = Example/Info.plist;
|
||||||
@ -680,6 +692,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = D91241144B5A3356A3C60644 /* Pods-ExampleTests.debug.xcconfig */;
|
baseConfigurationReference = D91241144B5A3356A3C60644 /* Pods-ExampleTests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
INFOPLIST_FILE = ExampleTests/Info.plist;
|
INFOPLIST_FILE = ExampleTests/Info.plist;
|
||||||
@ -699,6 +712,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = B93D4DB00FD244178B7CE7C4 /* Pods-ExampleTests.release.xcconfig */;
|
baseConfigurationReference = B93D4DB00FD244178B7CE7C4 /* Pods-ExampleTests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
INFOPLIST_FILE = ExampleTests/Info.plist;
|
INFOPLIST_FILE = ExampleTests/Info.plist;
|
||||||
@ -718,6 +732,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 016E930415B91D826F9FFF47 /* Pods-ExampleUITests.debug.xcconfig */;
|
baseConfigurationReference = 016E930415B91D826F9FFF47 /* Pods-ExampleUITests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
INFOPLIST_FILE = ExampleUITests/Info.plist;
|
INFOPLIST_FILE = ExampleUITests/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@ -736,6 +751,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = B93423722F2E06DC238CDD18 /* Pods-ExampleUITests.release.xcconfig */;
|
baseConfigurationReference = B93423722F2E06DC238CDD18 /* Pods-ExampleUITests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
INFOPLIST_FILE = ExampleUITests/Info.plist;
|
INFOPLIST_FILE = ExampleUITests/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
28
doric-iOS/Example/Example/DemoSwiftLibrary.swift
Normal file
28
doric-iOS/Example/Example/DemoSwiftLibrary.swift
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Created by pengfei.zhou on 2023/7/7.
|
||||||
|
// Copyright (c) 2023 pengfei.zhou. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
class DemoSwiftPlugin: DoricNativePlugin {
|
||||||
|
@objc func test() {
|
||||||
|
print("Here at test")
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func testData(data: String) {
|
||||||
|
print("Here at test, data is " + data)
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func testReturn(data: String,promise: DoricPromise) {
|
||||||
|
print("Here at test, promise ")
|
||||||
|
promise.resolve("This is from native")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DemoSwiftLibrary: DoricLibrary {
|
||||||
|
override func load(_ registry: DoricRegistry!) {
|
||||||
|
registry.registerNativePlugin(DemoSwiftPlugin.self, withName: "demoSwift");
|
||||||
|
}
|
||||||
|
}
|
38
doric-iOS/Example/Example/DemoVC.swift
Normal file
38
doric-iOS/Example/Example/DemoVC.swift
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// DemoVC.swift
|
||||||
|
// Example
|
||||||
|
//
|
||||||
|
// Created by pengfei.zhou on 2023/7/7.
|
||||||
|
// Copyright © 2023 pengfei.zhou. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class DemoVC: UIViewController {
|
||||||
|
let filePath: String
|
||||||
|
|
||||||
|
@objc init(path: String) {
|
||||||
|
filePath = path;
|
||||||
|
super.init(nibName: nil, bundle: nil)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
required init?(coder: NSCoder) {
|
||||||
|
filePath = "";
|
||||||
|
super.init(coder: coder)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad();
|
||||||
|
title = filePath;
|
||||||
|
view.backgroundColor = UIColor.white;
|
||||||
|
let jsContent = try? String(contentsOfFile: Bundle.main.bundlePath + "/src/" + filePath,
|
||||||
|
encoding: String.Encoding.utf8)
|
||||||
|
let doricPanel = DoricPanel()
|
||||||
|
doricPanel.view.width = view.width
|
||||||
|
doricPanel.view.height = view.height
|
||||||
|
view.addSubview(doricPanel.view)
|
||||||
|
addChild(doricPanel)
|
||||||
|
doricPanel.config(jsContent, alias: filePath, extra: nil)
|
||||||
|
}
|
||||||
|
}
|
8
doric-iOS/Example/Example/Example-Bridging-Header.h
Normal file
8
doric-iOS/Example/Example/Example-Bridging-Header.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
//
|
||||||
|
// Example-Bridging-Header.h
|
||||||
|
// Example
|
||||||
|
//
|
||||||
|
// Created by pengfei.zhou on 2023/7/7.
|
||||||
|
// Copyright © 2023 pengfei.zhou. All rights reserved.
|
||||||
|
//
|
||||||
|
#import <DoricCore/Doric.h>
|
@ -13,6 +13,7 @@
|
|||||||
#import "DoricPanelListViewController.h"
|
#import "DoricPanelListViewController.h"
|
||||||
#import "DoricEmbeddedExampleVC.h"
|
#import "DoricEmbeddedExampleVC.h"
|
||||||
#import "DemoSSRVC.h"
|
#import "DemoSSRVC.h"
|
||||||
|
#import "Doric_Playground-Swift.h"
|
||||||
|
|
||||||
@interface ViewController () <UITableViewDelegate, UITableViewDataSource>
|
@interface ViewController () <UITableViewDelegate, UITableViewDataSource>
|
||||||
@property(nonatomic, copy) NSArray <NSString *> *demoFilePaths;
|
@property(nonatomic, copy) NSArray <NSString *> *demoFilePaths;
|
||||||
@ -44,6 +45,7 @@ - (void)viewDidLoad {
|
|||||||
self.demoFilePaths = tmp;
|
self.demoFilePaths = tmp;
|
||||||
|
|
||||||
[Doric registerLibrary:[DemoLibrary new]];
|
[Doric registerLibrary:[DemoLibrary new]];
|
||||||
|
[Doric registerLibrary:[DemoSwiftLibrary new]];
|
||||||
[Doric enablePerformance:YES];
|
[Doric enablePerformance:YES];
|
||||||
[Doric enableRenderSnapshot:YES];
|
[Doric enableRenderSnapshot:YES];
|
||||||
|
|
||||||
@ -118,11 +120,12 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
|
|||||||
DemoSSRVC *vc = [[DemoSSRVC alloc] initWithPath:file];
|
DemoSSRVC *vc = [[DemoSSRVC alloc] initWithPath:file];
|
||||||
[self.navigationController pushViewController:vc animated:NO];
|
[self.navigationController pushViewController:vc animated:NO];
|
||||||
} else {
|
} else {
|
||||||
DoricViewController *doricViewController = [[DoricViewController alloc]
|
DemoVC *doricViewController = [[DemoVC alloc] initWithPath:file];
|
||||||
initWithSource:[NSString stringWithFormat:@"assets://src/%@", file]
|
// DemoVC *doricViewController = [[DemoVC alloc]
|
||||||
alias:@"__dev__"//self.demoFilePaths[(NSUInteger) indexPath.row]
|
// initWithSource:[NSString stringWithFormat:@"assets://src/%@", file]
|
||||||
extra:nil
|
// alias:@"__dev__"//self.demoFilePaths[(NSUInteger) indexPath.row]
|
||||||
];
|
// extra:nil
|
||||||
|
// ];
|
||||||
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Devkit" style:UIBarButtonItemStylePlain target:self action:@selector(onOpenDevkit)];
|
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Devkit" style:UIBarButtonItemStylePlain target:self action:@selector(onOpenDevkit)];
|
||||||
doricViewController.navigationItem.rightBarButtonItem = rightBarItem;
|
doricViewController.navigationItem.rightBarButtonItem = rightBarItem;
|
||||||
[self.navigationController pushViewController:doricViewController animated:NO];
|
[self.navigationController pushViewController:doricViewController animated:NO];
|
||||||
|
@ -54,7 +54,7 @@ - (id)callNativeWithContextId:(NSString *)contextId module:(NSString *)module me
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (id)createParamWithMethodName:(NSString *)method context:(DoricContext *)context callbackId:(NSString *)callbackId argument:(id)argument {
|
- (id)createParamWithMethodName:(NSString *)method context:(DoricContext *)context callbackId:(NSString *)callbackId argument:(id)argument {
|
||||||
if ([method isEqualToString:@"withPromise"]) {
|
if ([method isEqualToString:@"withPromise"] || [method isEqualToString:@"promise"]) {
|
||||||
return [[DoricPromise alloc] initWithContext:context callbackId:callbackId];
|
return [[DoricPromise alloc] initWithContext:context callbackId:callbackId];
|
||||||
}
|
}
|
||||||
return argument;
|
return argument;
|
||||||
@ -71,7 +71,11 @@ - (id)findClass:(Class)clz target:(id)target context:(DoricContext *)context met
|
|||||||
NSString *methodName = [NSString stringWithCString:sel_getName(method_getName(methods[i])) encoding:NSUTF8StringEncoding];
|
NSString *methodName = [NSString stringWithCString:sel_getName(method_getName(methods[i])) encoding:NSUTF8StringEncoding];
|
||||||
NSArray *array = [methodName componentsSeparatedByString:@":"];
|
NSArray *array = [methodName componentsSeparatedByString:@":"];
|
||||||
if (array && [array count] > 0) {
|
if (array && [array count] > 0) {
|
||||||
if ([array[0] isEqualToString:name]) {
|
NSString *firstPart = array[0];
|
||||||
|
if (![firstPart isEqualToString:name]) {
|
||||||
|
firstPart = [firstPart componentsSeparatedByString:@"With"][0];
|
||||||
|
}
|
||||||
|
if ([firstPart isEqualToString:name]) {
|
||||||
isFound = YES;
|
isFound = YES;
|
||||||
SEL selector = NSSelectorFromString(methodName);
|
SEL selector = NSSelectorFromString(methodName);
|
||||||
NSMethodSignature *methodSignature = [target methodSignatureForSelector:selector];
|
NSMethodSignature *methodSignature = [target methodSignatureForSelector:selector];
|
||||||
|
@ -85,7 +85,7 @@ - (void)command:(NSDictionary *)argument withPromise:(DoricPromise *)promise {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (id)createParamWithMethodName:(NSString *)method promise:(DoricPromise *)promise argument:(id)argument {
|
- (id)createParamWithMethodName:(NSString *)method promise:(DoricPromise *)promise argument:(id)argument {
|
||||||
if ([method isEqualToString:@"withPromise"]) {
|
if ([method isEqualToString:@"withPromise"] || [method isEqualToString:@"promise"]) {
|
||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
return argument;
|
return argument;
|
||||||
@ -99,7 +99,11 @@ - (void)findClass:(Class)clz target:(id)target method:(NSString *)name promise:(
|
|||||||
NSString *methodName = [NSString stringWithCString:sel_getName(method_getName(methods[i])) encoding:NSUTF8StringEncoding];
|
NSString *methodName = [NSString stringWithCString:sel_getName(method_getName(methods[i])) encoding:NSUTF8StringEncoding];
|
||||||
NSArray *array = [methodName componentsSeparatedByString:@":"];
|
NSArray *array = [methodName componentsSeparatedByString:@":"];
|
||||||
if (array && [array count] > 0) {
|
if (array && [array count] > 0) {
|
||||||
if ([array[0] isEqualToString:name]) {
|
NSString *firstPart = array[0];
|
||||||
|
if (![firstPart isEqualToString:name]) {
|
||||||
|
firstPart = [firstPart componentsSeparatedByString:@"With"][0];
|
||||||
|
}
|
||||||
|
if ([firstPart isEqualToString:name]) {
|
||||||
isFound = YES;
|
isFound = YES;
|
||||||
SEL selector = NSSelectorFromString(methodName);
|
SEL selector = NSSelectorFromString(methodName);
|
||||||
NSMethodSignature *methodSignature = [target methodSignatureForSelector:selector];
|
NSMethodSignature *methodSignature = [target methodSignatureForSelector:selector];
|
||||||
|
Reference in New Issue
Block a user