Objective c 儿童浏览器终止

Objective c 儿童浏览器终止,objective-c,ios,xcode,cordova,phonegap-plugins,Objective C,Ios,Xcode,Cordova,Phonegap Plugins,在javascript中调用多个函数以获取用户名/电子邮件地址/密码。一切正常后,转到goForLogin()并打开chrildbrowser。我得到一个错误(见下文): 首先,我的代码: function goForLogin(emailaddress, value){ var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.open("POST","http:

在javascript中调用多个函数以获取用户名/电子邮件地址/密码。一切正常后,转到goForLogin()并打开chrildbrowser。我得到一个错误(见下文):

首先,我的代码:

        function goForLogin(emailaddress, value){
            var xmlhttp;
            xmlhttp=new XMLHttpRequest();
            xmlhttp.open("POST","http://dev.server.com/test/login",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("email=" + emailaddress + "&password=" + value);

            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.status==200)
                {

                    value = null;
                    window.plugins.childBrowser.showWebPage('http://dev.server.com');
                } else {
                    alert("FAILED");
                }
            }
        }
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“应用程序试图显示” 模态上是一个主动控制器 *第一次抛出调用堆栈:(0x154012 0x25fce7e 0x478721 0x479777 0x4797b7 0x6a68 0x67471 0x66c5e 0x67039 0x26106b0 0x1198035 0xd7f3f 0xd796f 0xfa734 0xf9f44 0xf9e1b 0x33be7e3 0x33be668 0x38f65c 0x2366 0x2295)libc++abi.dylib:terminate调用引发异常(lldb)


最新的Cordova和Childbrowser,Xcode 4.4版本。

我知道了!由于
xmlhttp.onreadystatechange
语句,在此脚本中,儿童浏览器将打开三次。这是苹果公司不允许的——对不起,我忘了为什么——所以我回了电话。看起来是这样的:

我的JavaScript:

function some_function2(url, callback) {
      var httpRequest; // create our XMLHttpRequest object
      if (window.XMLHttpRequest) {
          httpRequest = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
          // Internet Explorer is stupid
          httpRequest = new
          ActiveXObject("Microsoft.XMLHTTP");
      }
      httpRequest.onreadystatechange = function() {

          // inline function to check the status
          // of our request
          // this is called on every state change
          if (httpRequest.readyState === 4 &&
             httpRequest.status === 200) {
             callback.call(httpRequest.responseXML);
             // call the callback function
         }
      };
      httpRequest.open('POST', url, true);
      httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      httpRequest.send("email=test@test.com&password=1");
      }


function call() {
   // call the function
   some_function2("http://dev.server.com/account/login/", function() {
                 console.log(this);
                 callChildBrowser();
                 });
                 console.log("this will run before the above callback");

}


function callChildBrowser(){
    window.plugins.childBrowser.showWebPage('http://dev.server.com');
    }
最后在我的html中:

<button id="butten" onclick="call()">WORKS</button>
有效