首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义方案未调用iOS - WKURLSchemeHandler

自定义方案未调用iOS - WKURLSchemeHandler
EN

Stack Overflow用户
提问于 2021-02-27 00:38:55
回答 1查看 495关注 0票数 1

我想用

捕获一些自定义方案的链接。为了理解它是如何工作的,我创建了一个简单的项目(在Objective-C中,对不起),其中包含一个包含自定义方案的本地html文件

代码语言:javascript
复制
Local Links
Local link
Local Image

MyScheme Links
Local link
Local Image

在我的

,我将我的webView初始化如下:

代码语言:javascript
复制
static NSString *const kCustomScheme = @"myscheme";

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.webView.navigationDelegate = self;
    [self.webView.configuration setURLSchemeHandler:[MySchemeHandler new] forURLScheme:kCustomScheme];
}

现在,下面是我的自定义SchemeHandler

代码语言:javascript
复制
#import 
#import 

@interface MySchemeHandler : NSObject


@end
代码语言:javascript
复制
@interface MySchemeHandler () 

@end

@implementation MySchemeHandler

# pragma mark - WKURLSchemeHandler callbacks

- (void)webView:(nonnull WKWebView *)webView startURLSchemeTask:(nonnull id)urlSchemeTask {
    NSLog(@"startURLScheme");
    if ([urlSchemeTask.request.URL.absoluteString containsString:kCustomScheme]) {
        NSLog(@" --> scheme found");
    } else {
        NSLog(@" --> scheme not found");
    }
}

- (void)webView:(nonnull WKWebView *)webView stopURLSchemeTask:(nonnull id)urlSchemeTask {
    NSLog(@"stopURLScheme");
}

@end

使用上面的代码,当我点击我的html页面的自定义链接时,没有任何反应。

我做错了什么?我看不出我的错误..。我是Objective-C的新手,或者,准确地说,在使用Android 10年后,我有点生疏了。所以如果你能帮我我会很高兴

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 01:14:28

最后,我成功地捕获了我的自定义方案。

事实上,一旦通过IB创建了webView,我就无法更改它的配置。要做到这一点,唯一的方法是使用所需的配置以编程方式创建webView。

以下是生成的代码片段:

代码语言:javascript
复制
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
[config setURLSchemeHandler:[MySchemeHandler new] forURLScheme:kCustomScheme];
    
self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:config];
self.webView.navigationDelegate = self;
self.webView.allowsBackForwardNavigationGestures = YES;
    
[self.view addSubview: self.webView];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66389618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档