我正在创建一个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视图传递到本机应用程序吗?
答案 0 :(得分:0)
您可以完成所需的代码。
您需要使用WKWebView并实现相应的委托。
SiteCodes
希望这对您有帮助...