我需要知道,当UIWebView完全加载网页时.我的意思是,非常完全,当所有重定向完成并且动态加载的内容准备就绪时.我尝试注入javascript(查询document.readyState == 'complete'),但这似乎不太可靠.
也许,来自私人api的事件会给我带来结果吗?
我在swift 3.0中用html内容创建一个pdf文件:
/**
*
*/
func exportHtmlContentToPDF(HTMLContent: String, filePath: String) {
// let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 694, height: 603));
// webView.loadHTMLString(HTMLContent, baseURL: nil);
let pdfPrinter = PDFPrinter();
let printFormatter = UIMarkupTextPrintFormatter(markupText: HTMLContent);
// let printFormatter = webView.viewPrintFormatter();
pdfPrinter.addPrintFormatter(printFormatter, startingAtPageAt: 0);
let pdfData = self.drawPDFUsingPrintPageRenderer(printPageRenderer: pdfPrinter);
pdfData?.write(toFile: filePath, atomically: true);
}
/**
*
*/
func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
let data = NSMutableData();
UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil);
printPageRenderer.prepare(forDrawingPages: NSMakeRange(0, printPageRenderer.numberOfPages));
let bounds = UIGraphicsGetPDFContextBounds();
for i …Run Code Online (Sandbox Code Playgroud) 我正在尝试显示一个满载的webview.我不希望用户在加载过程中看到webview.我一次处理几个webview并使用webViewDidFinishLoad它对我来说更复杂,所以我试图做这样的事情:
while(_lastWebView.isLoading)
{
_lastWebView.hidden=YES;
}
_lastWebView.hidden=NO;
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个消息:void SendDelegateMessage(NSInvocation*):委托()在等待10秒后无法返回.主运行循环模式:kCFRunLoopDefaultMode
我不明白为什么进入循环因为isLoading加载完成后返回0.
uiwebview ×2
cocoa-touch ×1
html ×1
ios ×1
iphone ×1
objective-c ×1
pdf ×1
swift ×1
webview ×1