1

動的 Web 要求の中心的な機能を作成しようとしています。

function makeWebRequest(remoteURL, requestString, callBackFunction) {
    var myWebRequest = new SMF.Net.WebClient({
        url : remoteURL,
        httpMethod : "POST",
        requestString : requestString,
        requestHeaders : [
            "Content-Type: application/x-www-form-urlencoded"],
        onSyndicationSuccess : callBackFunction,
        onServerError : function (e) {
            alert(e);
        }
    });
    myWebRequest.run(false);
}

makeWebRequest を呼び出すときに、callBackFunction を次のように渡します。

var remoteURL = "http://parse.com/12/test";
var requestString = "category=news&type=world";

function callBackFunction(e) {
    responseText = this.responseText;

    if (responseText != null) {
      parsedJSON = JSON.parse(responseText);
    }
}

makeWebRequest(remoteURL,requestString,callBackFunction);

アプリケーションが行でエラーを発生させる responseText = this.responseText;

myWebRequest 自体をそのような関数に渡すにはどうすればよいですか?

4

2 に答える 2

1

私はあなたのコードラインを使用しました。TextButton を Page1 に追加するだけで、Android と iOS の両方で正常に動作します。

Global.js で;

function makeWebRequest(remoteURL, requestString, callBackFunction) {
    var myWebRequest = new SMF.Net.WebClient({
        url : remoteURL,
        httpMethod : "POST",
        requestString : requestString,
        requestHeaders : [
            "Content-Type: application/x-www-form-urlencoded"],
        onSyndicationSuccess : callBackFunction,
        onServerError : function (e) {
            alert(e);
        }
    });
    myWebRequest.run(false);
}


var remoteURL = "http://parse.com/12/test";
var requestString = "category=news&type=world";

function callBackFunction(e) {
    var responseText = this.responseText;
    alert(responseText);

    if (responseText != null) {
      parsedJSON = JSON.parse(responseText);
    }
}



function Global_Events_OnStart(e) {
    changeLang(Device.language, true);
    include("BC.js"); //included for future BC support. Removing is not advised.

    //      Comment following block for navigationbar/actionbar sample. Read the JS code file for usage.
    //      Also there is a part of code block in Page1, which should be copied to every page for HeaderBar usage
    load("HeaderBar.js");
    header = new HeaderBar();

    //      Uncomment following block for menu sample. Read the JS code file for usage.
    /*
    load("Menu.js");
    /**/

}
function Global_Events_OnError(e) {
    switch (e.type) {
    case "Server Error":
    case "Size Overflow":
        alert(lang.networkError);
        break;
    default:
        SES.Analytics.eventLog("error", JSON.stringify(e));
        //change the following code for desired generic error messsage
        alert({
            title : lang.applicationError,
            message : e.message + "\n\n*" + e.sourceURL + "\n*" + e.line + "\n*" + e.stack
        });
        break;
    }
}

Page1.js;

function Page1_Self_OnKeyPress(e) {
    if (e.keyCode === 4) {
        Application.exit();
    }
}
function Page1_Self_OnShow() {
    //Comment following block for removing navigationbar/actionbar sample
    //Copy this code block to every page onShow
    header.init(this);
    header.setTitle("Page1");
    header.setRightItem("RItem");
    header.setLeftItem();
    /**/
}
function Page1_TextButton1_OnPressed(e){
    makeWebRequest(remoteURL,requestString,callBackFunction);
}
于 2014-12-29T14:26:16.470 に答える