Xamarin iOS UIWebView:如何从URL内容中获取自定义数据属性值?

时间:2017-09-25 18:13:03

标签: ios xamarin webview xamarin.ios uiwebview

对于我的Xamarin iOS应用程序,我想获取提供给UIWebView的URL内容中的自定义属性值。

网址内容:

<html>
<head>
<style>
.democlass {
    color: red;
}
</style>
</head>
<body>
<div id="frame" data-link="LINKER"></div>

<p id="demo"></p>

<button>Try it1</button>
<button>Try it2</button>
<p id="demoz"></p>
<button>Try it3</button>

</body>
</html>

Xamarin iOS:

var webView = new UIWebView();
webView.LoadRequest(new NSUrlRequest(new NSUrl(" */above html page/*")));
var url = webView.EvaluateJavascript("document.getElementsByName('div')[0].getAttribute('data-link')");

当我在EvaluateJavascript上运行UIWebview时,我希望url参数获取值LINKER,但它返回空字符串。

任何人都可以帮助我吗?我不确定我错过了什么或做错了什么。

1 个答案:

答案 0 :(得分:1)

正确的方法:

var url = webView.EvaluateJavascript("document.getElementById('frame').getAttribute('data-link');");

PS:确保在webview加载完成后执行此行。

我的代码:

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    var webView = new UIWebView();
    webView.LoadRequest(new NSUrlRequest(new NSUrl(" */above html page/*")));
    web.Delegate = new myDelegate();
}

public class myDelegate : UIWebViewDelegate
{
    public override void LoadingFinished(UIWebView webView)
    {
        var str = webView.EvaluateJavascript("document.getElementById('frame').getAttribute('data-link');");
    }
}