2017-10-06 36 views
0

我想使用條形碼掃描結果中的'result.text'來搜索web服務中的'frn2'。這是一個Android應用程序,我對此很新,所以您需要更多信息,我可以提供。如何將值發佈到WebService並獲取解析的另一個值? HTML

JS:

 <script> 
    function scan() { 
    cordova.plugins.barcodeScanner.scan(
      function(result) { 
       console.log(result.text) 
       var barcode_res = (" ID\n" + 
        "Result: " + result.text); 
       window.alert("ID Result: " + result.text); 
      }, 
      function(error) { 
       window.alert("Scanning Failed: " + error); 
      }, 




      //getFRNbyMATRIC webservice call 
      function(webserviceCall) { 
       var string = result.text; 
       $.post("http://localhost:8081/WebService.asmx? 
        op=getFRNByMATRIC", { 
        MATRIC: string 
       }, function(response) { 
        frn2 = response; 
       }).error(function() { 
        window.alert("Sorry could not proceed"); 
       }); 
       //return DCID Number 
       return frn2; 
      } 

     ) 

    window.open("https://example.com/?frn=" + frn2); 

     } 
     </script> 

XML/WEBSERVICE:

  <?xml version="1.0" encoding="utf-8"?> 
<ArrayOfTEST1 xmlns="http://tempuri.org/"> 
<TEST1> 
    <ID>int</ID> 
    <FRN>int</FRN> 
    <FRN2>string</FRN2> 
    <MATRIC>int</MATRIC> 
    <numbers> 
    <ID>int</ID> 
    <Numbers>string</Numbers> 
    <TEST1s> 
     <TEST1 d5p1:nil="true" xmlns:d5p1="http://www.w3.org/2001/XMLSchema- 
instance" /> 
     <TEST1 d5p1:nil="true" xmlns:d5p1="http://www.w3.org/2001/XMLSchema- 
instance" /> 
    </TEST1s> 
    </numbers> 
</TEST1> 

回答

1

我會用一個 '承諾' 清理它,這樣的事情可能工作:

function scan() { 
    cordova.plugins.barcodeScanner.scan(
     function(result) { 
      console.log(result.text) 
      var barcode_res = (" ID\n" + 
       "Result: " + result.text); 
      getFrn(result.text) 
       .then(function(frn2){ 
        // you can do something with frn2 here 
        window.open("https://example.com/?frn=" + frn2); 
       }); 
      window.alert("ID Result: " + result.text); 
     }, 
     function(error) { 
      window.alert("Scanning Failed: " + error); 
     }); 

    //getFRNbyMATRIC webservice call 
    function getFrn(str) { 
     return new Promise(function(resolve, reject) { 
      $.post("http://localhost:8081/WebService.asmx?op=getFRNByMATRIC", { 
       MATRIC: str 
      }, function(response) { 
       frn2 = response; 
       resolve(frn2); 
      }).error(function(e) { 
       window.alert("Sorry could not proceed"); 
       reject(e); 
      }); 
     }) 
    } 
} 
相關問題