Tôi muốn sử dụng trình kiểm tra web WebKit trong trình duyệt tùy chỉnh dựa trên WebKit trên OS X. Có thể sử dụng trình kiểm tra web trên đối tượng webview không? Nếu vậy, làm thế nào?Có cách nào để sử dụng trình kiểm tra web WebKit từ đối tượng Cocoa WebView không?
Trả lời
Đặt WebKitDeveloperExtras
thành YES
trong giá trị mặc định của người dùng khi bạn gửi -[NSUserDefaults registerDefaults:]
. Điều này áp dụng rộng rãi, tất nhiên.
Hãy nhớ rằng người dùng có thể thay đổi nó thành NO
, vì vậy đừng cho rằng đó là YES
—nếu nó có vấn đề (ví dụ: khi tùy chỉnh menu ngữ cảnh), hãy luôn kiểm tra.
Cảnh báo: Tùy chọn này không nhất thiết chỉ bật Trình kiểm tra phần tử. Apple có thể mở rộng nó trong tương lai cũng để kiểm soát, nói, một trình đơn Debug trong thanh trình đơn của bạn. Bạn có thể thấy đây là một rủi ro không thể chấp nhận được.
Tôi đã thử làm như vậy, nhưng không thể thấy thanh tra web.
Nó không giống như [[NSUserDefaults standarduserDefaults] registerDefaults:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:@"WebKitDeveloperExtras"]]
?
Trừ đi] ở phía trước, vâng. –
Cảm ơn. Từ danh sách gửi thư trên webkit-dev, tôi đã nhận được một phản hồi khác. Nó nên được thực hiện trong thời điểm sớm nhất của nó như + khởi tạo, hoặc nó có thể được phát hành trên dấu nhắc Unix. mặc định viết com.yourcompany.programname WebKitDeveloperExtras -bool true –
trong trường hợp của tôi (MacOSX 10.6.5) nó không hoạt động.
tôi phải làm như sau trong phương pháp windowDidLoad của WebView WindowController tôi:
/* Initialize webInspector. */ [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"WebKitDeveloperExtras"]; [[NSUserDefaults standardUserDefaults] synchronize];
Tôi tìm thấy ứng dụng cần thiết để khởi chạy lại ứng dụng này có hiệu lực. Có hay không điều này cần phải xảy ra trước khi webview được khởi tạo? – uchuugaka
Một REALLY cách dễ dàng để làm điều đó ... là ở nhà ga .... ⌘ ⬆ ☺
defaults write com.yourcompany.yourbundleid WebKitDeveloperExtras TRUE
(Với OSX 10.8, hãy sử dụng defaults write com.yourcompany.yourbundleid WebKitDeveloperExtras -bool true
thay thế).
LƯU Ý: Bạn PHẢI thay đổi com.yourcompany.yourbundleid
để "ứng dụng" cụ CỦA BẠN (hoặc bất kỳ công ty của ứng dụng bundle ID
nó có thể được) trước này sẽ làm việc **
Những điều tốt đẹp về vấn đề này ... có KHÔNG PHẢI để quên tháo nó ra, tắt đi, nhận xét nó ra, v.v. ... Đây là cài đặt LOCAL ... và có thể được đặt cho BẤT CỨ ứng dụng hỗ trợ webkit ... Nếu bạn không thấy Menu nhà phát triển hoặc không biết điều gì .. băn khoăn không ..
Ngay☝ (nhấp chuột) trên WebView và đi đến "Show Inspector".
Ngoài ra, những đường lối cũ, sau đây có thể làm một cái gì đó cũng .. nhưng tôi havent thử nó, vì vậy không chắc chắn ..
defaults write com.yourcompany.yourbundleid IncludeDebugMenu 1
Tôi đã phải sử dụng 'mặc định viết com.yourcompany.yourbundleid WebKitDeveloperExtras -bool true' để nó hoạt động. – thomthom
của Apple recommends:
defaults write com.example.myApp WebKitDeveloperExtras -bool true
Tuy nhiên, theo như tôi có thể nói, điều này có thể không còn hoạt động nếu bạn đang chạy ứng dụng của bạn ra khỏi hộp cát (mà bạn có thể cần phải làm trong một số giai đoạn phát triển).Trong trường hợp bạn gặp phải vấn đề này, những gì làm việc cho tôi là đặt giá trị cho khóa WebKitDeveloperExtras trong NSGlobalDomain:
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
Tác phẩm này! Tuyệt vời! Lưu ý phụ: Nó đặt cài đặt trên lần tải đầu tiên, không có hiệu lực cho đến khi ứng dụng được khởi động lại. Không chắc chắn làm thế nào để có được xung quanh này - có lẽ cung cấp một tập tin tài sản mặc định ... – user53937
loglibrarian: Đặt nó trước đó. Nếu applicationWillFinishLaunching: không đủ tốt, hãy đặt nó trong hàm main() của bạn. –
Ok Tôi biết tôi đang đẩy vận may của mình ở đây, nhưng có cách nào để khởi chạy chương trình thanh tra web không? Có lẽ một api tư nhân? – user53937