У меня есть страница с кнопкой, которая перенаправляется на скрипт PHP, который запускает загрузку APK, например ($ androidPackage - это имя файла и $ package содержит абсолютный путь):APK download не работает на складе Android-браузер
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename=' . $androidPackage);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($package));
ob_clean();
flush();
readfile($package);
exit;
Этот подход работает на Chrome для нескольких устройств Android, все основные браузеры настольных компьютеров, так и на фондовом браузера на некоторых Android устройств. Однако на моем телефоне (HTC Rezound) и Galaxy Tab 2 в браузере загрузки загрузка не работает при коротком нажатии кнопки - она не запускается, даже если это работает в Chrome на этих устройствах. Длительное нажатие на кнопку, а затем выбор «Открыть» из контекстного меню, которое появляется, действительно работает, чтобы загрузить APK из браузера запаса. Любые идеи относительно того, почему загрузка не начинается с короткого нажатия на броузер?
редактировать:
Следует отметить, что кнопка используется для подключения к этой загрузке находится в IFRAME. Если вместо этого я делаю document.location.href = (URL-адрес сценария загрузки) вместо загрузки источника сценария в iframe, когда документ загружается, загрузка действительно работает с коротким нажатием. Что-то связано с тем, как браузер-обозреватель обрабатывает iframe? Страница и сценарий, на которые он указывает, находятся в одном домене.
Первоначально у меня был тип контента, установленный на это, и наблюдалось то же поведение. – Dan