对不起,我是Android的新手,正在开发销售数字下载的应用程序。我正在使用Volley Library将INAPP_PURCHASE_DATA和INAPP_DATA_SIGNATURE发布到网络服务器以验证订单并发出下载链接传递
http://domain.com/thankyou.php?purchaseData="+purchaseData+"&dataSignature="+dataSignature+"
如果订单已经过验证,将在页面内发布下载链接。文件名不是静态的,这意味着它是由系统自动生成的,所以我无法猜测每次从服务器端发出的名称。可以是file1.dat file2.dat file3.dat,每次都有一个名称,具体取决于我在webserver中定义的某些参数。
<html>
<head>
<title>Thank You</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<a href="http://domain.com/file.dat" title="Order" download>Download File</a>
</body>
</html>
现在我需要将下载文件链接发布到应用程序,以便客户可以下载该文件。
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//download file on through a new in-app page
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
})
我创建了一个activity_download.xml
文件和一个新的下载类。
package com.example.app;
import java.util.List;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.example.app.R;
import android.app.ProgressDialog;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Download extends Activity {
private String filename;
@Override
protected void onCreate (final Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView(R.layout.activity_download);
}
}
}
再次抱歉,我是Android的新手。你能指导我一个方法,让我有一个完整的Download.java类作为一个新页面,然后从MainActivity.java方面调用它响应和成功的结果。
非常感谢你!
答案 0 :(得分:1)
将您的MainActivity代码插入此处。
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Intent intent = new Intent(MainActivity.this,Download.class);
startActivity(intent);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
})
如果你想要一个响应,你想要祝酒。不要在Activity类中执行此操作,请在下载类中执行此操作,因为您将在获得响应后立即重定向到Download类
public class Download extends Activity {
private String filename;
@Override
protected void onCreate (final Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView(R.layout.activity_download);
//download file on through a new in-app page
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
}
}