我试图通过UIWebView的shouldStartLoadWithRequest方法将多个内容从UIWebView内的网页传回我的iPhone应用程序.
基本上我的网页调用window.location.href ="command:// foo = bar",我能够拦截在我的应用程序中没问题.现在,如果我创建一个循环并立即执行多个window.location.href调用,那么shouldStartLoadWithRequest似乎只会被调用一次,并且它获得的调用是循环结束时window.location.href的最后一次触发.
Android的webview也会发生同样的事情,只会处理最后一个window.location.href.
iFrame = document.createElement("IFRAME"); iFrame.setAttribute("src", "command://foo=bar"); document.body.appendChild(iFrame); iFrame.parentNode.removeChild(iFrame); iFrame = null;
所以这创建了一个iframe,将其源代码设置为一个试图传递给应用程序的命令,然后一旦它附加到主体应该调用StartLoadWithRequest,然后我们从正文中删除iframe,并将其设置为null以释放记忆.
我还使用shouldOverrideUrlLoading在Android webview上测试了它,它也正常工作!