永发信息网

android 怎么来传递异步回调的值

答案:1  悬赏:0  手机版
解决时间 2021-03-13 11:32
android 怎么来传递异步回调的值
最佳答案
PhoneGap的js回调有几种实现方式。其中一种是ajax。
  我们先来看一下js端相关代码:

  // file: lib/android/plugin/android/callback.js
  define("cordova/plugin/android/callback", function(require, exports, module) {
  
  var port = null,
  token = null,
  xmlhttp;
  
  function startXhr() {
  // cordova/exec depends on this module, so we can't require cordova/exec on the module level.
  var exec = require('cordova/exec'),
  xmlhttp = new XMLHttpRequest();
  
  // Callback function when XMLHttpRequest is ready
  xmlhttp.onreadystatechange=function(){
  if (!xmlhttp) {
  return;
  }
  if (xmlhttp.readyState === 4){
  // If callback has JavaScript statement to execute
  if (xmlhttp.status === 200) {
  
  // Need to url decode the response
  var msg = decodeURIComponent(xmlhttp.responseText);
  setTimeout(startXhr, 1);
  exec.processMessages(msg);
  }
  
  // If callback ping (used to keep XHR request from timing out)
  else if (xmlhttp.status === 404) {
  setTimeout(startXhr, 10);
  }
  
  // 0 == Page is unloading.
  // 400 == Bad request.
  // 403 == invalid token.
  // 503 == server stopped.
  else {
  console.log("JSCallback Error: Request failed with status " + xmlhttp.status);
  exec.setNativeToJsBridgeMode(exec.nativeToJsModes.POLLING);
  }
  }
  };
  
  if (port === null) {
  port = prompt("getPort", "gap_callbackServer:");
  }
  if (token === null) {
  token = prompt("getToken", "gap_callbackServer:");
  }
  xmlhttp.open("GET", "http://127.0.0.1:"+port+"/"+token , true);
  xmlhttp.send();
  }
  
  module.exports = {
  start: function() {
  startXhr();
  },
  
  stop: function() {
  if (xmlhttp) {
  var tmp = xmlhttp;
  xmlhttp = null;
  tmp.abort();
  }
  },
  
  isAvailable: function() {
  return ("true" != prompt("usePolling", "gap_callbackServer:"));
  }
  };
  
  
  });
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
加州理工大学有哪些专业
求这个背景是广州哪里
蔻旋石锅饭(河海大学店)地址在哪,我要去那里
知道你在读什么的英语
东莞通是什么
车来车往汽车装潢中心在哪里啊,我有事要去这
惠美超市我想知道这个在什么地方
6.32×21=几竖式
篮球罚球是否有时间限制
宏盛工程检测有限公司我想知道这个在什么地方
奶水少要如何解决?
宏泰美食园地址有知道的么?有点事想过去
通讯稿范文
四张小口,围着小狗,要问是啥,工厂里有的答案
大生地我想知道这个在什么地方
推荐资讯
鉴真设立的戒坛属于哪个宗教
有明朝永乐年从山西洪洞县大槐树迁移的刘姓后
长沙国际车展买车会不会比平常便宜,13号订车
格瑞斯石油机械制造公司在什么地方啊,我要过
我在外面在寿司店上班,学习做寿司半年,现在
喝了2两白酒加5瓶啤酒 中间睡了4个小时 过了1
逼汉王这处戏主要情节是什么?
win7自带的刻光盘功能怎么那么慢啊==
侠盗飞车罪恶都市怎么让那个任务走路,是走,
U盘重装系统后又自动进去大白菜,怎么回事啊
初中语文作文开头是开门见山的有哪些
知道老虎和牛的爱情故事吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?