iOS:add Bundle Resource

This commit is contained in:
pengfei.zhou 2021-10-25 16:51:45 +08:00 committed by osborn
parent 235549eea4
commit 986d32a8e0
12 changed files with 126 additions and 15 deletions

View File

@ -60,6 +60,7 @@
#import "DoricBase64ResourceLoader.h"
#import "DoricLocalResourceLoader.h"
#import "DoricRemoteResourceLoader.h"
#import "DoricCommonBundleResourceLoader.h"
@interface DoricRegistry ()
@ -139,6 +140,7 @@ - (void)innerRegister {
[self.loaderManager registerLoader:[DoricLocalResourceLoader new]];
[self.loaderManager registerLoader:[DoricRemoteResourceLoader new]];
[self.loaderManager registerLoader:[DoricBase64ResourceLoader new]];
[self.loaderManager registerLoader:[DoricCommonBundleResourceLoader new]];
}
- (void)registerJSBundle:(NSString *)bundle withName:(NSString *)name {

View File

@ -0,0 +1,24 @@
/*
* Copyright [2021] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
// Created by pengfei.zhou on 2021/10/25.
//
#import <Foundation/Foundation.h>
#import "DoricResourceLoader.h"
@interface DoricCommonBundleResourceLoader : NSObject <DoricResourceLoader>
@end

View File

@ -0,0 +1,41 @@
/*
* Copyright [2021] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
// Created by pengfei.zhou on 2021/10/25.
//
#import "DoricCommonBundleResourceLoader.h"
#import "DoricBundleResource.h"
#import "DoricExtensions.h"
@implementation DoricCommonBundleResourceLoader
- (NSString *)resourceType {
return @"bundle";
}
- (__kindof DoricResource *)load:(NSString *)identifier withContext:(DoricContext *)context {
NSArray<NSString *> *ret = [identifier componentsSeparatedByString:@"://"];
NSString *bundleName = ret.firstObject;
NSString *fileName = ret.lastObject;
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *bundlePath = [mainBundle pathForResource:bundleName ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
return [[[DoricBundleResource alloc] initWithContext:context identifier:fileName]
also:^(DoricBundleResource *it) {
it.bundle = bundle;
}];
}
@end

View File

@ -2197,11 +2197,18 @@ var AssetResource = /** @class */ (function (_super) {
*/
var MainBundleResource = /** @class */ (function (_super) {
__extends$e(MainBundleResource, _super);
function MainBundleResource(path) {
return _super.call(this, "mainBundle", path) || this;
function MainBundleResource(fileName) {
return _super.call(this, "mainBundle", fileName) || this;
}
return MainBundleResource;
}(Resource));
var BundleResource = /** @class */ (function (_super) {
__extends$e(BundleResource, _super);
function BundleResource(bundleName, fileName) {
return _super.call(this, "bundle", bundleName + "://" + fileName) || this;
}
return BundleResource;
}(Resource));
var __extends$d = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
@ -4389,6 +4396,7 @@ exports.AssetResource = AssetResource;
exports.BOTTOM = BOTTOM;
exports.BackgroundColorAnimation = BackgroundColorAnimation;
exports.Base64Resource = Base64Resource;
exports.BundleResource = BundleResource;
exports.CENTER = CENTER;
exports.CENTER_X = CENTER_X;
exports.CENTER_Y = CENTER_Y;

View File

@ -1652,8 +1652,13 @@ class AssetResource extends Resource {
* This is for iOS platform
*/
class MainBundleResource extends Resource {
constructor(path) {
super("mainBundle", path);
constructor(fileName) {
super("mainBundle", fileName);
}
}
class BundleResource extends Resource {
constructor(bundleName, fileName) {
super("bundle", `${bundleName}://${fileName}`);
}
}
@ -3372,6 +3377,7 @@ exports.AssetResource = AssetResource;
exports.BOTTOM = BOTTOM;
exports.BackgroundColorAnimation = BackgroundColorAnimation;
exports.Base64Resource = Base64Resource;
exports.BundleResource = BundleResource;
exports.CENTER = CENTER;
exports.CENTER_X = CENTER_X;
exports.CENTER_Y = CENTER_Y;

View File

@ -3173,8 +3173,13 @@ class AssetResource extends Resource {
* This is for iOS platform
*/
class MainBundleResource extends Resource {
constructor(path) {
super("mainBundle", path);
constructor(fileName) {
super("mainBundle", fileName);
}
}
class BundleResource extends Resource {
constructor(bundleName, fileName) {
super("bundle", `${bundleName}://${fileName}`);
}
}
@ -5134,6 +5139,7 @@ exports.AssetResource = AssetResource;
exports.BOTTOM = BOTTOM;
exports.BackgroundColorAnimation = BackgroundColorAnimation;
exports.Base64Resource = Base64Resource;
exports.BundleResource = BundleResource;
exports.CENTER = CENTER;
exports.CENTER_X = CENTER_X;
exports.CENTER_Y = CENTER_Y;

5
doric-js/index.d.ts vendored
View File

@ -1660,7 +1660,10 @@ declare module 'doric/lib/src/util/resource' {
* This is for iOS platform
*/
export class MainBundleResource extends Resource {
constructor(path: string);
constructor(fileName: string);
}
export class BundleResource extends Resource {
constructor(bundleName: string, fileName: string);
}
}

View File

@ -33,5 +33,8 @@ export declare class AssetResource extends Resource {
* This is for iOS platform
*/
export declare class MainBundleResource extends Resource {
constructor(path: string);
constructor(fileName: string);
}
export declare class BundleResource extends Resource {
constructor(bundleName: string, fileName: string);
}

View File

@ -47,7 +47,12 @@ export class AssetResource extends Resource {
* This is for iOS platform
*/
export class MainBundleResource extends Resource {
constructor(path) {
super("mainBundle", path);
constructor(fileName) {
super("mainBundle", fileName);
}
}
export class BundleResource extends Resource {
constructor(bundleName, fileName) {
super("bundle", `${bundleName}://${fileName}`);
}
}

View File

@ -41,6 +41,7 @@ export class DrawableResource extends Resource {
super("drawable", name)
}
}
export class RawResource extends Resource {
constructor(name: string) {
super("raw", name)
@ -57,7 +58,13 @@ export class AssetResource extends Resource {
* This is for iOS platform
*/
export class MainBundleResource extends Resource {
constructor(path: string) {
super("mainBundle", path)
constructor(fileName: string) {
super("mainBundle", fileName)
}
}
export class BundleResource extends Resource {
constructor(bundleName: string, fileName: string) {
super("bundle", `${bundleName}://${fileName}`)
}
}

View File

@ -3227,8 +3227,13 @@ class AssetResource extends Resource {
* This is for iOS platform
*/
class MainBundleResource extends Resource {
constructor(path) {
super("mainBundle", path);
constructor(fileName) {
super("mainBundle", fileName);
}
}
class BundleResource extends Resource {
constructor(bundleName, fileName) {
super("bundle", `${bundleName}://${fileName}`);
}
}
@ -4947,6 +4952,7 @@ exports.AssetResource = AssetResource;
exports.BOTTOM = BOTTOM;
exports.BackgroundColorAnimation = BackgroundColorAnimation;
exports.Base64Resource = Base64Resource;
exports.BundleResource = BundleResource;
exports.CENTER = CENTER;
exports.CENTER_X = CENTER_X;
exports.CENTER_Y = CENTER_Y;

File diff suppressed because one or more lines are too long