【问题标题】:How to get correct value of custom attribute of any tag in IOS?如何在 IOS 中获取任何标签的自定义属性的正确值?
【发布时间】:2017-12-24 06:59:13
【问题描述】:

情况:

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

预期结果:在网页视图中获取所选超链接的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 的任何链接时,我得到了错误的数据。

谁能帮我写代码或给我提供代码 sn-p 我如何在 iOS 中做到这一点?

提前谢谢..!

【问题讨论】:

    标签: javascript ios objective-c uiwebview


    【解决方案1】:

    您可以侦听所有链接点击并触发您在您实现的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)
    

    【讨论】:

    • 您可以在“did load”事件中删除空白并将这段代码作为字符串注入到 Web 视图中。用于将其注入 Web 视图的方法称为 stringByEvaluatingJavaScriptFromString 或类似名称。
    • NSString *datas = [NSString stringWithFormat:@"\n\n\n\n\n\n
      \n%@
      \n\n", finalHTML];
    • 我试过这个并将 htmlstring 加载到 webview 它返回我 applewebdata://something... 在 webview shouldStartLoadWithRequest() 方法中
    • 你能把代码sn-ps传给我吗?我该如何解决这个问题?
    • 我想在 iOS 的本机代码中获取那个 标签属性值
    猜你喜欢
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2017-09-07
    • 1970-01-01
    • 2012-11-07
    • 2016-07-11
    • 2011-07-03
    相关资源
    最近更新 更多