मैं चाहता हूं कि मेरा फेसबुक कैनवास ऐप संदर्भ बदलते समय पता बार यूआरएल को अपडेट करने में सक्षम हो। तो, उदाहरण के लिए, यदि मेरे ऐप का होम यूआरएल https://apps.facebook.com/myapp/
है, और उपयोगकर्ता होम स्क्रीन पर कुछ आइटम पर क्लिक करता है, तो मुझे पता बार में यूआरएल https://apps.facebook.com/myapp/1/
या https://apps.facebook.com/myapp/#1
में बदलने के लिए यूआरएल चाहिए।क्या फेसबुक कैनवास में पैरेंट विंडो को pushState() करने का कोई तरीका है?
आम तौर पर, मेरा ऐप एचटीएमएल 5 के history.pushState()
के साथ ऐसा कर सकता है। समस्या यह है कि कैनवास ऐप एक आईफ्रेम के अंदर चलता है, और पैरेंट विंडो के pushState
तक नहीं पहुंच सकता है (क्योंकि iframe ऐप.facebook.com के समान डोमेन नहीं है)। एक और तकनीक को पते के केवल हैश भाग को बदलना चाहिए, यानी window.location.hash = "1"
, लेकिन इसी कारण से, iframe के भीतर भी यह संभव नहीं है।
यह पूरे पृष्ठ को फिर से लोड के साथ माता-पिता पृष्ठ URL को बदलने के लिए उपयोग कर रहा
window.parent.location = "https://apps.facebook.com/myapp/1/"
हालांकि द्वारा संभव है, इस पैरेंट पृष्ठ, पुनः लोड सेकंड की अच्छी संख्या को ले जा रही है, और फिर पुन: लोड करने का कारण होता है iframe - सब कुछ, उपयोगकर्ता के लिए एक बहुत लंबा और निराशाजनक अनुभव।
क्या ऐसा करने का कोई तरीका हो सकता है मैंने सोचा नहीं है?
आप सही हैं। दुर्भाग्यवश, फेसबुक एपीआई में ऐसी विधि नहीं है, भले ही आईएमएचओ यह जोड़ने के लिए एक आसान तरीका है, यह मानते हुए कि डोमेन उपसर्ग मैचों की पुष्टि करना XSS के खिलाफ पर्याप्त सुरक्षा है। यदि आपको लगता है कि आप अपने उपयोग के लिए उपयोगी एपीआई पा सकते हैं, तो कृपया इसके लिए एफबी के साथ वोट दें: https://developers.facebook.com/bugs/133461353503702 – onon15
इसे +1 किया। ऐसा लगता है कि वे इसे अभी "इच्छासूची" पर छोड़ रहे हैं। –