如何获取IOS中任何标签的自定义属性的正确值?



>情况:

通过单击UIWebview中的超链接获取错误数据。 所以想知道正确的代码,并需要帮助来纠正我犯错的地方。

预期结果:获取Web视图中所选超链接的data_cascade_uid,这是标签的自定义属性

示例:我在下面写了html代码块以将内容显示到UIWebview中

HTML 代码块

<p>Code OB is <a data-cascade-uid="98170f1e-d213-4dbf-a1a6-6d6fcc5142ba" href="">coming soon</a>; If there is an Obstetrical <a data-cascade-uid="376f52bf-789c-4cea-b0d8-f2cffef1e4a2" href="">Emergency</a> please call Women&#39;s and Babies Dept..at SCS.</p>

尝试使用 Web 视图委托方法以这种方式访问 url

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked){
NSURL *url = request.URL;
//if valid url then move to browser 
if ([request.URL.scheme isEqualToString:@"https"] || [request.URL.scheme isEqualToString:@"http"]) {
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else
{
// getting Wrong data like this applewebdata://D0D0AF87-4369-4E26-9AD2-6971A37FD571.
}
return YES;
}
return YES;
}

在此代码中,代码中有 2 个超链接。因此,当用户单击任何链接进入Web视图时,我想获得可点击链接的关联data_cascade_uid。但是当我单击任何链接到WebView时,我得到了错误的数据。

任何人都可以帮助我编写代码或为我提供代码片段如何在iOS中执行此操作?

提前感谢..!

您可以侦听所有链接单击并触发自定义导航请求,该请求在实现的shouldStartLoadWithRequest方法中侦听。请注意,您首先需要在应用中注册 URL 方案(例如myurlscheme(,这非常简单,可以在 Xcode 中项目的"信息"选项卡中完成。

document.addEventListener('click', function(e) {
if (e.target.tagName != 'a' && e.target.tagName != 'A') {
return
}
window.location = 'myurlscheme://somehost?data=' + e.target.getAttribute("data-cascade-uid")
}, false)

最新更新