[
https://issues.apache.org/jira/browse/CB-9485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tom Brückner updated CB-9485:
-----------------------------
Labels: processOpenURL (was: ios)
> 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
> Labels: processOpenURL
>
> 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, you can 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, this patch worked for me.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]