Tom Brückner created CB-9485:
--------------------------------

             Summary: processOpenURL shortens long URLs with ellipsis
                 Key: CB-9485
                 URL: https://issues.apache.org/jira/browse/CB-9485
             Project: Apache Cordova
          Issue Type: Bug
          Components: iOS
    Affects Versions: 3.7.0
         Environment: iOS
            Reporter: Tom Brückner


I'm building a hybrid app and wanted to use the openProcessURL() mechanism to 
transfer data from the native side to the webapp. The data consists of a rather 
large string.

Here I noticed, that this URL will get shortened using an ellipsis (...) and 
thus not transfered correctly to the webapp.

I tracked the problem down to its root cause. The problem is that NSURL 
automatically shortens URLs if you are just converting it into a string. This 
"feature" is also described here:

http://stackoverflow.com/questions/30764851/nsurl-urlwithstring-is-shortening-very-long-strings-with-an-ellipsis-crea

Cordova iOS uses this kind of direct string conversion before the URL is handed 
over to the native side. In Cordova 3.7.0 (which I'm using), this happens in 
CDVViewController.m (processOpenURL). In the latest Cordova development branch, 
the same happens in CDVHandleOpenURL.m (handleOpenURL).

In both cases, the errorneous conversion / shortening is a side-effect of the 
call to [NSString stringWithFormat], where the NSURL is handed over as a 
string. This causes ellipsis generation.

As described in the stack overflow question linked above, the problem does not 
occur if the parts of the URL (e.g. the path or the query) are converted 
seperately, and I can confirm that.

To fix the problem, please replace

NSString* jsString = [NSString stringWithFormat:@"if (typeof handleOpenURL === 
'function') { handleOpenURL(\"%@\");}", url];

with

NSString* jsString = [NSString stringWithFormat:@"if (typeof handleOpenURL === 
'function') { handleOpenURL(\"%@\");}", url.absoluteString];

The .absoluteString retrieves the unaltered URL.
with 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to