मान लें कि मैं कुछ स्थिर HTML पृष्ठों को प्रदर्शित करने के लिए जीटीके में WebKitWebView
का उपयोग करना चाहता हूं। ये पृष्ठ एक कस्टम यूआरएल योजना का उपयोग करते हैं, चलो इसे custom://
पर कॉल करें। यह योजना एक स्थानीय फ़ाइल का प्रतिनिधित्व करती है जिसका स्थान एचटीएमएल उत्पन्न होने पर पहले से ज्ञात नहीं है।वेबकिट जीटीके में एक कस्टम यूआरएल योजना कैसे संभालें?
const gchar *uri = webkit_network_request_get_uri(request);
gchar *scheme = g_uri_parse_scheme(uri);
if(strcmp(scheme, "custom") == 0) {
/* DO FILE LOCATING MAGIC HERE */
webkit_web_view_open(webview, real_location_of_file);
return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
}
/* etc. */
यह ठीक काम करने के लिए जब तक योजना एक <img>
टैग में प्रयोग किया जाता है, उदाहरण के लिए लगता है:: <img src="custom://myfile.png">
, जाहिरा तौर पर इन नहीं मुझे क्या वेबव्यू की navigation-requested
सिग्नल से कनेक्ट है, और ऐसा करने के है navigation-requested
सिग्नल के माध्यम से जाओ।
ऐसा लगता है कि वेबकिट के साथ कस्टम यूआरएल योजना के लिए हैंडलर पंजीकृत करने का कोई तरीका होना चाहिए। क्या यह संभव है?
धन्यवाद, यह सही दिशा है कि मैं जरूरत में सूचक था। पूर्णता के लिए, उत्तर वेबव्यू के 'संसाधन-अनुरोध-प्रारंभिक' सिग्नल से कनेक्ट करना है, और उस हैंडलर के भीतर से 'webkit_web_resource_get_uri() 'के साथ हेरफेर करना है। (ध्यान दें कि यह केवल वेबकिट> = 1.1.14 पर काम करता है।) – ptomato