मैं अपने ऐप के अंदर से ऐप्पब्रोसर का उपयोग करके विंडो खोलने के लिए कुश्ती कर रहा हूं। असल में, मैं विशेष ऐप सुविधाओं के साथ मोबाइल स्किन किए गए सीएमएस साइट को लोड करने के लिए एक रैपर के रूप में फोनगैप का उपयोग कर रहा हूं।फोनगैप बिल्ड सीएलआई-5.2.0 वेब ऐप के भीतर से डाउनलोड और बंद करें
यहां index.html है। मैं inappbrowser का उपयोग कर रहा हूँ (स्थान के साथ सेट के साथ)। मेरा बाहरी साइट से inappbrowser के माध्यम से भरी हुई
मैं
की तरह पद से समान दस्तावेज और सुझावों का उपयोग फ़ाइलों को डाउनलोड की कोशिश की है -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Emerald Test App</title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width" />
<script src="phonegap.js"></script>
<script type='text/javascript'>
var ref = null;
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
var url = 'https://my-cms-site.com/content.aspx?page_id=31&org_id=1&app=1';
var target = '_blank';
var options = "location=no"
ref = cordova.InAppBrowser.open(url, target, options);
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
मैं क्या करने के लिए देख रहा हूँ, एक प्रणाली ब्राउज़र में खुला लिंक है
<script type="text/javascript">
window.open(url, '_system');
</script>
और _blank, और 'स्थान = नहीं' आदि जोड़ना, लेकिन कोई पासा नहीं। ये बाहरी पृष्ठ हैं, जो मेरी दूरस्थ साइट से लोड हैं।
जब ये लिंक क्लिक किए जाते हैं, तो वे उसी ब्राउज़र (इनप्ब्रोसर या वेबव्यू) में खुलते हैं और ब्राउज़र को लेते हैं। मैं जो करना चाहता हूं वह इसे किसी अन्य सिस्टम ब्राउज़र (क्रोम, सफारी, जो कुछ भी) में खोलता है। यह मेरी डाउनलोड समस्या का ख्याल रखेगा (क्योंकि फाइलें सिस्टम ब्राउज़र में उम्मीदपूर्वक खुलती हैं और उपयोगकर्ता यह पता लगा सकता है कि उनके साथ क्या करना है)।
मैंने href के मूल्य को वापस करने के लिए एक ईवेंट श्रोता और निष्पादन सूची जोड़ने की कोशिश की है। फिर उस मान का उपयोग window.open (href, '_ system') पर करें; index.html से (दूरस्थ पृष्ठ के बजाय)। इंडेक्स पर, मेरे पास अभी भी इनप्ब्रोसर का संदर्भ होगा।
ref.addEventListener("loadstop", function() {
ref.executeScript(
{ code: "var gbal = null; $('a').on('click', function() { gbal = $(this).attr('href'); }); (function runIt() { return gbal })();" },
function(values) {
if (values != null) {
//alert(values[ 0 ]);
window.open(values[0],'_system');
}
}
);
});
}
मान [0] हमेशा शून्य है। या $ (this) वास्तव में इस
तो, बड़ा सवाल नहीं है - - कैसे मैं एक में मेरी बाहरी साइट में लिंक खोल सकते हैं executescript के भाग: जो इंगित करने के लिए मैं सही ढंग से कोड में कुछ नहीं कर रहा हूँ लगता है सिस्टम ब्राउज़र window.open ('whatever.htm', '_XXXXX') मेरी रिमोट साइट पर कॉल करते समय कोई फर्क नहीं पड़ता। क्या मैं एक ईवेंट श्रोता का उपयोग करके सही रास्ते पर हूं?