2011-11-06 31 views
5

Điều tôi muốn làm là đặt thang thu phóng ban đầu [và trong một số trường hợp, bù đắp nội dung nhưng điều đó ít quan trọng hơn đối với trang web bên ngoài. Nhưng sau khi ứng dụng ban đầu đặt thu phóng và bù trừ, người dùng sẽ có thể thay đổi chúng và ứng dụng sẽ không can thiệp.UIWebView đặt quy mô thu phóng ban đầu theo chương trình khi tải một trang web bên ngoài?

Một số thông tin liên quan có sẵn here, herehere. Nhưng theo như tôi có thể nói, không ai làm những gì tôi muốn.

Cách tiếp cận cài đặt meta có vẻ đầy hứa hẹn - nhưng làm thế nào tôi có thể đặt nó khi tôi không kiểm soát nội dung html sẽ được tải?

Trả lời

26

Hãy thử điều này để thiết lập mức độ phóng ban đầu -

[webView stringByEvaluatingJavaScriptFromString:@"document. body.style.zoom = 5.0;"]; 

Cũng không quên đặt scalesPageToFit để NO và bạn đã hoàn tất.

Nếu bạn đặt tùy chọn này thành CÓ, trang web sẽ được thu nhỏ lại và người dùng có thể phóng to và thu nhỏ. Nếu KHÔNG, thu phóng người dùng bị tắt. Giá trị mặc định là không.

+2

Tôi đặt điều này vào webViewDidFinishLoad và nó hoạt động rất tốt, cảm ơn! Nhưng tôi muốn cho phép người dùng thay đổi thu phóng ban đầu của tôi. Tôi KHÔNG muốn trang được thu nhỏ để vừa với [không phải là] - nhưng việc thu phóng người dùng bị tắt. –

+0

William, bạn đã giải quyết vấn đề này chưa? – Tony

+0

@WilliamJockusch bạn có tìm thấy giải pháp không? – mhmdshawqi

1

Tại sao không:

[self.webView.scrollView setZoomScale:2.0 animated:YES]; 
+0

Điều này không hiệu quả đối với tôi. – Luke

0

best one found thử thêm thẻ meta trong trang html của bạn, trong tag.It của bạn được sửa chữa trong nháy mắt. Hãy thử apple link và chọn thẻ meta phù hợp cho bạn.

0

nếu bạn đang tải html và javascriptin uiwebview thì trong khung nhìn thiết lập có thể mở rộng quy mô người dùng = 1.0.

3

Nếu bạn muốn đặt thu phóng ban đầu cho chế độ xem web và sau đó chế độ xem web của bạn có thể mở rộng. Bạn có thể thử thêm thẻ meta vào thẻ đầu của chuỗi HTML của mình tại phương thức giao thức webViewDidFinishLoad. Bạn có thể thay đổi 'quy mô ban đầu', 'quy mô tối thiểu' và 'quy mô tối đa' để thích ứng với yêu cầu của bạn. Có dạng như sau:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString* js = 
    @"var meta = document.createElement('meta'); " \ 
    "meta.setAttribute('name', 'viewport'); " \ 
    "meta.setAttribute('content', 'width = device-width, initial-scale = 1.0,minimum-scale=1.0,maximum-scale=10.0 user-scalable = yes'); " \ 
    "document.getElementsByTagName('head')[0].appendChild(meta)"; 
    [webView stringByEvaluatingJavaScriptFromString: js]; 
} 
+0

Cảm ơn tôi biết về thẻ này nhưng tôi không biết cách triển khai. Bạn tiết kiệm ngày của tôi. –

+0

Cảm ơn bạn rất nhiều. –

Các vấn đề liên quan