使用Swift检测WebView URL中的更改

时间:2017-12-17 02:52:58

标签: javascript ios swift xcode url

我正在创建一个hybrid app,我正在尝试将一些数据从WebView传递到本机应用。

我能想到的最好的方法是使用URL variables,然后在Swift中为URL添加一个监听器来获取新数据。

首次使用此Swift代码加载时,我可以从WebView获取URL变量...

void sort(struct Employee e[],int n)
    {
        int i,j;
        struct Employee t;
            for(i=0;i<n+1;i++)
                for(j=0;j<n-1;j++)
                {
                    if(strcmp(e[i].name,e[j+1].name)>0)
                    {
                        t=e[j];
                        e[j]=e[j+1];
                        e[j+1]=t;
                    }
                }
    } 


这很好用,但我似乎无法找到一个WebView监听器来检测何时我在页面加载后通过JS添加新的URL变量。这是JS ......

func webViewDidFinishLoad(_ webView: UIWebView) {

   print(getQueryStringParameter(url: (webView.request?.url?.absoluteString)!, param: "id"));

}
func getQueryStringParameter(url: String, param: String) -> String? {
    guard let url = URLComponents(string: url) else { return nil }
    return url.queryItems?.first(where: { $0.name == param })?.value
}

任何想法如何在Swift中倾听?或者有更好的方法将数据从Web视图传递到本机应用程序吗?

1 个答案:

答案 0 :(得分:0)

您可以完成所需的代码。

您需要使用WKWebView并实现相应的委托。

SiteCodes

希望这对您有帮助...