Javascript JSURL在android中不起作用
您好,在我的应用程序中,我使用这个js文件来获取json响应Javascript JSURL在android中不起作用,javascript,android,Javascript,Android,您好,在我的应用程序中,我使用这个js文件来获取json响应 xamp->htdoc->node chat->node_modules->config->request这是文件的路径 在客户端,我使用这样的路径 UserFragment.java public class UserFragment extends Fragment { ListView list; ArrayList<HashMap<String, String>> users = new ArrayL
xamp->htdoc->node chat->node_modules->config->request
这是文件的路径
在客户端,我使用这样的路径
UserFragment.java
public class UserFragment extends Fragment {
ListView list;
ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String, String>>();
Button refresh,logout;
List<NameValuePair> params;
SharedPreferences prefs;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.user_fragment, container, false);
prefs = getActivity().getSharedPreferences("Chat", 0);
list = (ListView)view.findViewById(R.id.listView);
refresh = (Button)view.findViewById(R.id.refresh);
logout = (Button)view.findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Logout().execute();
}
});
refresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.content_frame)).commit();
Fragment reg = new UserFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, reg);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
});
new Load().execute();
return view;
}
private class Load extends AsyncTask<String, String, JSONArray> {
@Override
protected JSONArray doInBackground(String... args) {
JSONParser json = new JSONParser();
params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("mobno", prefs.getString("REG_FROM","")));
JSONArray jAry = json.getJSONArray("http://10.0.2.2:8080/node-chat/getuser",params);
return jAry;
}
@Override
protected void onPostExecute(JSONArray json) {
for(int i = 0; i < json.length(); i++){
JSONObject c = null;
try {
c = json.getJSONObject(i);
String name = c.getString("name");
String mobno = c.getString("mobno");
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", name);
map.put("mobno", mobno);
users.add(map);
} catch (JSONException e) {
e.printStackTrace();
}
}
ListAdapter adapter = new SimpleAdapter(getActivity(), users,
R.layout.user_list_single,
new String[] { "name","mobno" }, new int[] {
R.id.name, R.id.mobno});
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Bundle args = new Bundle();
args.putString("mobno", users.get(position).get("mobno"));
Intent chat = new Intent(getActivity(), ChatActivity.class);
chat.putExtra("INFO", args);
startActivity(chat);
}
});
}
}
private class Logout extends AsyncTask<String, String, JSONObject> {
@Override
protected JSONObject doInBackground(String... args) {
JSONParser json = new JSONParser();
params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("mobno", prefs.getString("REG_FROM","")));
JSONObject jObj = json.getJSONFromUrl("http://10.0.2.2:8080/node-chat/logout",params);
return jObj;
}
@Override
protected void onPostExecute(JSONObject json) {
String res = null;
try {
res = json.getString("response");
Toast.makeText(getActivity(),res,Toast.LENGTH_SHORT).show();
if(res.equals("Removed Sucessfully")) {
Fragment reg = new LoginFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, reg);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
SharedPreferences.Editor edit = prefs.edit();
edit.putString("REG_FROM", "");
edit.commit();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
request.js
var request = require('request');
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'root',
password : '',
database : 'chat',
}
);
connection.connect();
exports.login = function(name,mobno,reg_id,callback) {
var data = {
name : name,
mobno : mobno,
reg_id : reg_id
};
var que = "SELECT * from users WHERE mobno =" + mobno;
var query = connection.query(que, function(err, rows)
{
if(rows.length == 0){
var query = connection.query("INSERT INTO users set ? ",data, function(err, rows)
{
callback({'response':"Sucessfully Registered"});
});
}else {
callback({'response':"User already Registered"});
}
});
}
exports.getuser = function(mobno,callback) {
var query = connection.query("SELECT * from users", function(err, rows)
{
if(rows.length == 0){
callback({'response':"No Users Registered"});
}else {
callback(removeUser(rows, mobno));
}
});
}
exports.removeuser = function(mobno,callback) {
var que = "DELETE FROM users WHERE mobno =" + mobno;
var query = connection.query(que, function(err, rows)
{
if(!err){
callback({'response':"Removed Sucessfully"});
}else{
callback({'response':"Error"});
}
});
}
exports.send = function(fromn,fromu,to,msg,callback) {
var que = "SELECT * from users WHERE mobno =" + to;
var query = connection.query(que, function(err, rows)
{
if(rows.length == 0){
callback({'response':"Failure"});
}else {
var to_id = rows[0].reg_id;
var name = rows[0].name;
request(
{ method: 'POST',
uri: 'https://android.googleapis.com/gcm/send',
headers: {
'Content-Type': 'application/json',
'Authorization':'xxxxxxx'
},
body: JSON.stringify({
"registration_ids" : [to_id],
"data" : {
"msg":msg,
"fromu":fromu,
"name":fromn
},
"time_to_live": 108
})
}
, function (error, response, body) {
callback({'response':"Success"});
}
)
}});
}
function removeUser(arr, val) {
for(var i=0; i<arr.length; i++) {
if(arr[i].mobno == val) {
arr.splice(i, 1);
return arr;
break;
}
}
}
var request=require('request');
var mysql=require('mysql');
var connection=mysql.createConnection(
{
主机:“localhost”,
用户:'根',
密码:“”,
数据库:“聊天室”,
}
);
connection.connect();
exports.login=函数(名称、mobno、注册id、回调){
风险值数据={
姓名:姓名,,
莫布诺:莫布诺,
注册号:注册号
};
var que=“从用户中选择*,其中mobno=“+mobno;
var query=connection.query(que,函数(err,行)
{
如果(rows.length==0){
var query=connection.query(“插入用户集?”,数据,函数(err,行)
{
回调({'response':“成功注册”});
});
}否则{
回调({'response':“用户已注册”});
}
});
}
exports.getuser=函数(mobno,回调){
var query=connection.query(“从用户中选择*”,函数(err,行)
{
如果(rows.length==0){
回调({'response':“未注册用户”});
}否则{
回调(removeUser(rows,mobno));
}
});
}
exports.removeuser=函数(mobno,回调){
var que=“从用户中删除,其中mobno=“+mobno;
var query=connection.query(que,函数(err,行)
{
如果(!err){
回调({'response':“已成功删除”});
}否则{
回调({'response':“Error”});
}
});
}
exports.send=函数(fromn、fromu、to、msg、callback){
var que=“从用户中选择*,其中mobno=“+to”;
var query=connection.query(que,函数(err,行)
{
如果(rows.length==0){
回调({'response':“Failure”});
}否则{
var to_id=行[0]。reg_id;
变量名称=行[0]。名称;
请求(
{方法:'POST',
uri:'https://android.googleapis.com/gcm/send',
标题:{
“内容类型”:“应用程序/json”,
“授权”:“xxxxxxx”
},
正文:JSON.stringify({
“注册id”:[注册id],
“数据”:{
“味精”:味精,
“fromu”:fromu,
“姓名”:fromn
},
“生存时间”:108
})
}
,函数(错误、响应、正文){
回调({'response':“Success”});
}
)
}});
}
函数removeUser(arr、val){
对于(var i=0;我能告诉你在哪里定义/注销路由吗?我看不到。对不起,刚才我编辑了我的帖子。好吧,我知道了,这是一个不同的路由。但现在的问题是,我仍然看不到你在哪里定义哪个函数处理对该路由的调用?这只是我在问如何给出路由我认为你应该考虑像Connect这样的东西或者Express.js。
var request = require('request');
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'root',
password : '',
database : 'chat',
}
);
connection.connect();
exports.login = function(name,mobno,reg_id,callback) {
var data = {
name : name,
mobno : mobno,
reg_id : reg_id
};
var que = "SELECT * from users WHERE mobno =" + mobno;
var query = connection.query(que, function(err, rows)
{
if(rows.length == 0){
var query = connection.query("INSERT INTO users set ? ",data, function(err, rows)
{
callback({'response':"Sucessfully Registered"});
});
}else {
callback({'response':"User already Registered"});
}
});
}
exports.getuser = function(mobno,callback) {
var query = connection.query("SELECT * from users", function(err, rows)
{
if(rows.length == 0){
callback({'response':"No Users Registered"});
}else {
callback(removeUser(rows, mobno));
}
});
}
exports.removeuser = function(mobno,callback) {
var que = "DELETE FROM users WHERE mobno =" + mobno;
var query = connection.query(que, function(err, rows)
{
if(!err){
callback({'response':"Removed Sucessfully"});
}else{
callback({'response':"Error"});
}
});
}
exports.send = function(fromn,fromu,to,msg,callback) {
var que = "SELECT * from users WHERE mobno =" + to;
var query = connection.query(que, function(err, rows)
{
if(rows.length == 0){
callback({'response':"Failure"});
}else {
var to_id = rows[0].reg_id;
var name = rows[0].name;
request(
{ method: 'POST',
uri: 'https://android.googleapis.com/gcm/send',
headers: {
'Content-Type': 'application/json',
'Authorization':'xxxxxxx'
},
body: JSON.stringify({
"registration_ids" : [to_id],
"data" : {
"msg":msg,
"fromu":fromu,
"name":fromn
},
"time_to_live": 108
})
}
, function (error, response, body) {
callback({'response':"Success"});
}
)
}});
}
function removeUser(arr, val) {
for(var i=0; i<arr.length; i++) {
if(arr[i].mobno == val) {
arr.splice(i, 1);
return arr;
break;
}
}
}