के साथ इन-ऐप ब्राउज़र (वेबव्यू) का पता लगाएं मैंने आईओएस और एंड्रॉइड के लिए एक ऐप विकसित किया है जो इन-ऐप ब्राउज़र (वेबव्यू) का उपयोग करके मेरे वेबसर्वर से एक HTML फ़ाइल एक्सेस करता है।PHP/जावास्क्रिप्ट
मैं नहीं चाहता कि कोई उपयोगकर्ता ऐप का उपयोग किए बिना इस फ़ाइल तक पहुंच सके। क्या पता लगाने की कोई संभावना है, यदि उपयोगकर्ता ऐप के साथ फ़ाइल को सीधे एक्सेस कर रहा है या सीधे इस स्मार्टफोन/टैबलेट/कंप्यूटर पर ब्राउज़र के माध्यम से है? मुझे लगता है कि PHP के साथ एक समाधान बहुत बेहतर है, क्योंकि जावास्क्रिप्ट को बंद किया जा सकता है। कम से कम Google Analytics सफारी और सफारी (इन-ऐप) के बीच अंतर कर सकता है। यह आईओएस और एंड्रॉइड के हर संस्करण के साथ काम करना चाहिए।
आपकी मदद के लिए धन्यवाद।
समाधान
कई प्रयासों के बाद मैं अंत में मेरे लिए एक काम कर समाधान मिल गया!
आईओएस: आप उपयोगकर्ता एजेंट का उपयोग करके सफारी और इन-ऐप ब्राउज़र के बीच अंतर का पता लगा सकते हैं। शायद एक अच्छा समाधान है, लेकिन यह काम करता है।
// Safari (in-app)
if ((strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile/') !== false) && (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari/') == false) {
echo 'Safari (in-app)';
}
एंड्रॉयड: app से पैकेज का नाम पीएचपी चर $_SERVER['HTTP_X_REQUESTED_WITH']
में संग्रहित है।
// Android (in-app)
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app") {
echo 'Android (in-app)';
}
जैसे ही टिम वैन एल्स्लू पहले से ही नोट किया गया है कि HTTP शीर्षलेखों को फिक्र किया जा सकता है और यह बिल्कुल सुरक्षित नहीं है।
यदि अन्य ब्राउज़र से पृष्ठ खोला गया है तो आईओएस समाधान विफल हो जाएगा। कुछ परीक्षण के बाद, मैंने इसे थोड़ा परिष्कृत किया। यहां देखें: http: // stackoverflow।कॉम/प्रश्न/2738766/आईफोन-वेबएप-एक-रास्ता-से-पता-कैसे-यह-लोड-लोड-होम-स्क्रीन-बनाम-सफार/20757993 # 20757993 –