Tôi đã vật lộn với việc thực hiện cuộc gọi đến cửa sổ đang mở, sử dụng trình ứng dụng inappbrowser từ bên trong ứng dụng của tôi. Về cơ bản, tôi đang sử dụng phonegap làm trình bao bọc để tải lên trang web CMS trên da di động với các tính năng ứng dụng đặc biệt.Phonegap Build CLI-5.2.0 Tải xuống và Đóng Trong Ứng dụng Web
Đây là index.html. Tôi đang sử dụng inappbrowser (với vị trí được đặt thành không).
<!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>
Những gì tôi đang tìm cách để làm, là liên kết mở trong một trình duyệt hệ thống - từ trang web bên ngoài của tôi nạp qua inappbrowser
Tôi đã thử download file sử dụng tài liệu tương tự và gợi ý từ bài viết như
<script type="text/javascript">
window.open(url, '_system');
</script>
Và _blank và thêm 'location = no' etc, nhưng không có súc sắc. Đây là những trang bên ngoài, được tải từ trang web từ xa của tôi.
Khi các liên kết này được nhấp, chúng sẽ mở trong cùng một trình duyệt (inappbrowser hoặc webview) và tiếp quản trình duyệt. Những gì tôi đang tìm kiếm là mở các trình duyệt này trong một trình duyệt hệ thống khác (chrome, safari, bất kỳ thứ gì). Điều này sẽ giải quyết vấn đề tải xuống của tôi (vì các tệp hy vọng sẽ mở ra trong trình duyệt hệ thống và người dùng có thể tìm ra việc cần làm với chúng).
Tôi đã cố gắng thêm trình xử lý sự kiện và executescript để trả về giá trị của href. Sau đó, sử dụng giá trị đó để window.open (href, '_ system'); từ index.html (thay vì trang từ xa). Bởi vì trên chỉ mục, tôi sẽ vẫn có tham chiếu đến inappbrowser.
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');
}
}
);
});
}
Giá trị [0] luôn là rỗng. Điều này dường như cho thấy tôi không làm điều gì đó chính xác trong mã: phần của bản thực thi - hoặc $ (này) không thực sự là này
Vì vậy, câu hỏi lớn - làm cách nào để mở liên kết trong trang web bên ngoài của tôi trình duyệt hệ thống. window.open ('whatever.htm', '_XXXXX') không có sự khác biệt khi được gọi trên trang web từ xa của tôi. Tôi có đang đi đúng hướng bằng cách sử dụng trình xử lý sự kiện không?