我有一个链接。当用户单击该链接时,它将更新数据库上的计数,并且将安装应用程序。
<a style="text-decoration: none" mimeType="application/vnd.android.package-archive" href="http://way2enjoy.com/touch/w2et/appdownload.php?file=http://way2enjoy.com/android/Way2Enjoy.apk?32" target="_new">Download Android <img src="http://www.way2enjoy.com/touch/w2et/android32.png" />app</a>
我已经通过直接指向android文件尝试了这个文件,它安装没有任何问题,但当我通过这个链接它似乎工作,在PC和Android文件下载,但当我尝试安装文件在android中我得到解析错误。
这是我的appdownload.php代码
$c=explode("?",$_SERVER[ 'REQUEST_URI' ]); $city=end($c);
$c=explode("?file=",$_SERVER[ 'REQUEST_URI' ]); $city1=end($c);
$content = file_get_contents($city1);
header("Content-Type: application/vnd.android.package-archive");
header("Content-Disposition: attachment; filename=Way2Enjoy.apk");
mysql_query("update table SET count=count+1 where id='$city'");
echo $content;
mysql count
增加没有任何问题,文件也被下载但该文件没有安装在android中。
有什么想法吗?
答案 0 :(得分:1)
您应该在MySQL语句中使用错误处理,因为您只是回显文件内容,如果其他一些语句在OutputStream中回显错误,则会破坏APK。
更好的方法是重定向到这样的文件:
header('Location: http://way2enjoy.com/android/Way2Enjoy.apk');
。实际上我从来没有用Android apks尝试这个,但它应该可以工作。
答案 1 :(得分:0)
我认为这是因为php代码只是启动下载并递增计数器。 您无法确定用户是否最终安装了该应用。
我不知道您是否是Android应用的所有者。在这种情况下,您可以从Android应用程序增加计数器,以确保应用程序已正确安装。
希望它有所帮助!