{ "id": "81210", "key": "TIMOB-5462", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "12081", "description": "", "name": "Sprint 2011-41", "archived": true, "released": true, "releaseDate": "2011-10-17" } ], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2011-10-11T10:28:50.000+0000", "created": "2011-10-06T16:19:48.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "11570", "description": "", "name": "Release 1.7.2", "archived": true, "released": true, "releaseDate": "2011-07-21" }, { "id": "11331", "description": "", "name": "Release 1.8.0", "archived": true, "released": true, "releaseDate": "2011-10-31" } ], "issuelinks": [], "assignee": { "name": "qgao", "key": "qgao", "displayName": "Qing Gao", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-02T22:20:37.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "h4.Problem\r\nTitanium.Platform.openURL method causes the url to break if URL is escaped with special characters.\r\n\r\ne.g. http://mobile.twitter.com/?status=the free mom's Helper app from Fisher-Price\r\n\r\nThat will show: the free mom\r\n\r\nh4.Repro sequence\r\n//If URL has an apostrophe shows like &# 39 ; \r\nTitanium.Platform.openURL(\"http://mobile.twitter.com/?status=the free mom's Helper app from Fisher-Price\");\r\n\r\nh4.Tested on\r\niOS Simulator & iPad 2 v4.3.3\r\n\r\nh4.Associated HD ticket\r\nAPP-619486\r\n", "attachment": [], "flagged": false, "summary": "Hash in url when using openURL gets escaped - 1.7.2 / 1.8.x", "creator": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "environment": " Product: Mobile\r\n Titanium SDK: Mobile 1.7.2 & 1.8.x\r\n Platform OS: iOS\r\n Platform OS Version: 4.3", "comment": { "comments": [ { "id": "168189", "author": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "body": "None of these scape characters worked, to show an apostrophe\r\n\r\n{noformat}\r\nU+0027;\r\n/U0027\r\n’\r\n’\r\n’\r\n'\r\n&39;\r\n‘\r\n  \r\n%27\r\n \r\n{noformat}", "updateAuthor": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-10-06T16:36:29.000+0000", "updated": "2011-10-06T16:36:29.000+0000" }, { "id": "168649", "author": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The client code should be properly encoding the URL before passing it to the openURL API using Ti.Network.encodeURIComponent.", "updateAuthor": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-10-10T08:51:40.000+0000", "updated": "2011-10-10T08:54:29.000+0000" }, { "id": "168841", "author": { "name": "qgao", "key": "qgao", "displayName": "Qing Gao", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We can solve this problem by two steps.\r\n1. Use the following defined fixedEncodeURIComponent function to replaced some Unescaped characters with their encoded code.\r\nfunction fixedEncodeURIComponent (str) { \r\n return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28'). \r\n replace(/\\)/g, '%29').replace(/\\*/g, '%2A'); \r\n}\r\n2. Replace \"mobile.twitter.com\" with \"twitter.com\" in the URL. ", "updateAuthor": { "name": "qgao", "key": "qgao", "displayName": "Qing Gao", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-10-11T10:28:50.000+0000", "updated": "2011-10-11T10:31:00.000+0000" }, { "id": "408590", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as invalid.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-02T22:20:37.000+0000", "updated": "2017-03-02T22:20:37.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }