Pencereyi açarak çağrılarımın içinden inappbrowser kullanarak arama yapıyorum. Temel olarak, özel uygulama özelliklerine sahip mobil tenli bir CMS sitesi yüklemek için phonegap'i bir paketleyici olarak kullanıyorum.Phonegap Build CLI-5.2.0 Web Uygulaması İçinde İndirme ve Kapatma
İşte index.html. Inappbrowser kullanıyorum (konumu no ile ayarlanmış).
Ben
gibi görevlerinden benzer belgeleri ve önerileri kullanarak dosya indirme denedim Harici siteden inappbrowser üzerinden yüklenen - Yapacak arıyorum ne<!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>
bir sistem tarayıcıda açık olan bağlantıları olan
<script type="text/javascript">
window.open(url, '_system');
</script>
Ve _blank ve 'location = no' vb ekleme, ancak hiçbir zar. Bunlar uzak sitemden yüklenen harici sayfalardır.
Bu bağlantılar tıklandığında, aynı tarayıcıda (inappbrowser veya webview) açılır ve tarayıcıyı ele geçirirler. Yapmak istediğim şey, bunları başka bir sistem tarayıcısında açmaktır (krom, safari, her neyse). Bu benim indirme sorunumla ilgilenir (dosyalar sistem tarayıcısında umarız açılacak ve kullanıcı bunlarla ne yapacağını anlayacaktır).
Bir olay dinleyicisi eklemeye çalıştım ve href değerini döndürmek için executescript. Sonra bu değeri window.open (href, '_ system') olarak kullanın; index.html'den (uzak sayfa yerine). Çünkü endekste, inappbrowser'a referans yapacağım.
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');
}
}
);
});
}
Değerler [0] daima boştur. Bu kodda doğru bir şey yapmıyorum belirtmek için görünüyor: executescript parçası - veya $ (bu) gerçekten değil bu
Yani, büyük soru - dış sitemdeki bağlantıları nasıl açabilirim sistem tarayıcısı window.open ('whatever.htm', '_XXXXX') uzak sitemde çağrıldığında fark yaratmıyor. Bir olay dinleyicisi kullanarak doğru yolda mıyım?