I am trying to build up something that uses wkwebview and javascript..So, I am having terrible issues with strings..
They are way too short, meaning that they don’t have enough capacity. I have understood that string’s capacity is huge, something like that it could fit a bible inside it.. Yet; I am experiencing trouble with it. First, json replies from post message, got truncated, so I had to begin creating methods that shrink json to parts.. Not ideal, not at all.. Anyway..
My script is here:
var script: String = ""
script += """
let json = JSON.parse(data);
if (json && json['cargo'] && json['cargo']['loads'] && Array.isArray(json['cargo']['loads']) && Object.keys(json['cargo']['loads']).length > 0 && json['cargo']['loads'][0]['id']) {
var obj = new Object();
obj.id = json['cargo']['loads'][0]['id'];
obj.ordererReference = json['cargo']['loads'][0]['ordererReference'];
obj.fromname = json['cargo']['loads'][0]['consignorName];
obj.fromstreet = json['cargo']['loads'][0]['consignorStreetAddr'];
obj.frompost = json['cargo']['loads'][0]['consignorPostCode'] + " " + json['cargo']['loads'][0]['consignorPostOffice'];
obj.fromphone = json['cargo']['loads'][0]['consignorPhone'];
obj.fromcoords = json['cargo']['loads'][0]['consignorCoordinateX'] + "," + json['cargo']['loads'][0]['consignorCoordinateY'];
obj.toname = json['cargo']['loads'][0]['consigneeName'];
obj.tostreet = json['cargo']['loads'][0]['consigneeStreetAddr'];
obj.topost = json['cargo']['loads'][0]['consigneePostCode'] + " " + json['cargo']['loads'][0]['consigneePostOffice'];
obj.tophone = json['cargo']['loads'][0]['consigneePhone'];
obj.tocoords = json['cargo']['loads'][0]['consigneeCoordinateX'] + " " + json['cargo']['loads'][0]['consigneeCoordinateY'];
obj.toemail = json['cargo']['loads'][0]['consigneeEmail'];
obj.organizer = json['cargo']['loads'][0]['responsiblePerson'];
obj.organizerPhone = json['cargo']['loads'][0]['responsiblePhone'];
obj.loadArrive = json['cargo']['loads'][0]['loadingPlaceArrival'];
obj.loadBegun = json['cargo']['loads'][0]['fetchTimeRealisationStart'];
obj.loadEnd = json['cargo']['loads'][0]['fetchTimeRealisation'];
obj.deliveryArrive = json['cargo']['loads'][0]['deliveryPlaceArrival'];
obj.deliveryBegun = json['cargo']['loads'][0]['deliveryTimeRealisationStart'];
obj.deliveryEnd = json['cargo']['loads'][0]['deliveryTimeRealisation'];
obj.waybill = json['cargo']['loads'][0]['waybillPdfUrl'];
obj.comments = json['cargo']['loads'][0]['comments'];
window.webkit.messageHandlers.openLoadDetails.postMessage(JSON.stringify(obj));
} else {
window.webkit.messageHandlers.requestError.postMessage("failed to get load details")
}
"""
and this is what script string variable contains:
let json = JSON.parse(data);
if (json && json['cargo'] && json['cargo']['loads'] && Array.isArray(json['cargo']['loads']) && Object.keys(json['cargo']['loads']).length > 0 && json['cargo']['loads'][0]['id']) {
var obj = new Object();
obj.id = json['cargo']['loads'][0]['id'];
obj.ordererReference = json['cargo']['loads'][0]['ordererReference'];
obj.fromname = json['cargo']['loads'][0]['consignorName];
obj.fromstreet = json['cargo']['loads'][0]['consignorStreetAddr'];
obj.frompost = json['cargo']['loads'][0]['consignorPostCode'] + " " + json['cargo']['loads'][0]['consignorPostOffice'];
obj.fromphone = json['cargo']['loads'][0]['consignorPhone'];
obj.fromcoords = json['cargo']['loads'][0]['consignorCoordinateX'] + "," + json['cargo']['loads'][0]['consignorCoordinateY'];
obj.toname = json['cargo']['loads'][0]['consigneeName'];
obj.tostreet = json['cargo']['loads'][0]['consigneeStreetAddr'];
obj.topost = json
Yes, that’s where it truncates. I first thought that there is a “invisible” character that causes this.. Nothing like that. Then I tried to append to string after this, and it still is the same, second string that I append to it.. Just “disappears”..
Okay, maybe there’s something I can’t see.. So I remove all content.. Open up a wikipedia with swift page on it, copy a rather big portion from there and insert that to script variable – just to see that it happens again, article gets truncated as well..
What is going on??? How can I make “a long string”? Is there a project setting somewhere that has gone wrong and then limits string’s maximum length? So frustrating..
I tried to search for this, but it seems that this isn’t very common problem – or I am looking with wrong keywords..