मैं Apple’s guide for creating a Safari App Extension का अनुसरण कर रहा हूं। संक्षेप में, मैं कर दिया है:एक्सकोड में कंसोल में मेरे सफारी ऐप एक्सटेंशन एनएसएलओजी संदेश क्यों नहीं दिख रहे हैं?
- एक नया Xcode प्रोजेक्ट बनाया गया (Xcode 8.1 में, MacOS 10.12 सिएरा पर) कोको आवेदन टेम्पलेट का उपयोग कर
- अनुप्रयोग में एक नया लक्ष्य सफारी एक्सटेंशन टेम्पलेट का उपयोग कर बनाया
- एक बार एप्लिकेशन चलाएं, सुनिश्चित करें कि सफारी एप्लिकेशन एक्सटेंशन
- सफारी का विकास करना मेनू
- में "अनुमति दें अहस्ताक्षरित एक्सटेंशन" विकल्प चयनित बनाया गया है सफारी के एक्सटेंशन वरीयता फलक में विस्तार सक्षम बनाने के लिए
सफारी में एक्सटेंशन का टूलबार बटन दिखाई देता है। ऐप्पल की मार्गदर्शिका का कहना है कि जब मैं टूलबार बटन पर क्लिक करता हूं तो मुझे कंसोल में NSLog संदेश देखना चाहिए, लेकिन मुझे कुछ भी दिखाई नहीं दे रहा है।
मैं स्क्रिप्ट विस्तार के द्वारा इंजेक्शन के लिए एक संदेश भेजने के लिए SafariExtensionHandler.swift संपादित किया है:
override func toolbarItemClicked(in window: SFSafariWindow) {
// This method will be called when your toolbar item is clicked.
NSLog("The extension's toolbar item was clicked")
window.getActiveTab(completionHandler: { (activeTab) in
activeTab?.getActivePage(completionHandler: { (activePage) in
activePage?.dispatchMessageToScript(withName: "toolbarItemClicked", userInfo: nil)
})
})
}
और मैं इंजेक्शन लिपि (script.js) संपादित किया है कि संदेश को सचेत करने के:
safari.self.addEventListener("message", function (event) {
alert("We got a message from the extension! - " + event.name + ": " + event.message);
});
चेतावनी तब दिखाई देती है जब मैं टूलबार बटन पर क्लिक करता हूं (जब मैं webkit.org पर एक पृष्ठ पर हूं, जैसा कि मैंने डिफ़ॉल्ट SFSafariWebsiteAccess सेटिंग्स में छोड़ा है), इसलिए एक्सटेंशन काम कर रहा है और क्लिक को पंजीकृत कर रहा है। लेकिन मुझे एक्सकोड के कंसोल, या कंसोल ऐप में एनएसएलॉग नहीं दिख रहा है।
मैं असली एक्सकोड नौसिखिया हूं, इसलिए मुझे यकीन है कि मुझे कुछ याद आ रही है - लेकिन कंसोल में एनएसएलओजी संदेश क्यों नहीं दिख रहा है?
(यदि कोई फर्क पड़ता है तो मैं व्यवस्थापक के रूप में नहीं चलता हूं - हालांकि जब भी पहली बार एक्सकोड चलाने के दौरान मुझसे पूछा गया था तो मैंने व्यवस्थापक खाता विवरण दर्ज किया था। मुझे लगता है कि कंसोल ऐप में , जब मैं system.log का चयन करता हूं, तो मुझे "फ़ाइल पढ़ने में असमर्थ" कहने वाला एक संदेश दिखाई देता है। यह might be related to not running as an administrator।)
धन्यवाद मैंने आपके जवाब को देखने से पहले काफी समय लगाया :) – Simcha
क्या ऐप चलाने के लिए हमेशा सफारी का चयन करने का कोई तरीका है? – ZedTuX