{ "id": "174090", "key": "AC-6353", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": null, "resolutiondate": null, "created": "2019-09-04T00:07:57.000+0000", "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2019-11-04T18:56:57.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "14548", "name": "Titanium SDK & CLI", "description": "Please enter tickets related to the MobileSDK here." } ], "description": "This is a very particular example. We have a WebView in our app that opens are particular page on StubHub. This problem occurs with both iOS and Android.\r\n\r\nhttps://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n\r\nThe StubHub website recognizes the mobile platform and, after loading the mobile web page, it does a redirect to its url-scheme as you'll see in the log of load: and beforeload: events. Prior to SDK 8, the redirect would fail transparently. With SDK 8, we get very unusual behavior. The normal mobile web page is loaded and displayed but then the stubhub:// url is loaded and we get a Webpage not available error.\r\n\r\nAndroid pops up an error alert and throws the error event. iOS throws the error event.\r\n\r\nAndroid Log:\r\n\r\n{code}\r\n[INFO] : WebViewFactory: Loading com.android.chrome version 76.0.3809.132 (code 380913237)\r\n[WARN] : W/m.phondini.tes: ClassLoaderContext classpath element mismatch for position 0. expected=base.apk!classes2.dex, found=/data/app/com.android.chrome-zuW0BDWT7wPtSsggEOsmwg==/base.apk!classes2.dex (PCL[base.apk*3474436943:base.apk!classes2.dex*1411187084] | PCL[/data/app/com.android.chrome-zuW0BDWT7wPtSsggEOsmwg==/base.apk*3474436943:/data/app/com.android.chrome-zuW0BDWT7wPtSsggEOsmwg==/base.apk!classes2.dex*1411187084])\r\n[INFO] : cr_LibraryLoader: Time to load native libraries: 2 ms (timestamps 5053-5055)\r\n[INFO] : chromium: [INFO:library_loader_hooks.cc(51)] Chromium logging enabled: level = 0, default verbosity = 0\r\n[INFO] : InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus\r\n{color:#d04437}[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/{color}\r\n{color:#d04437}[INFO] : I/TiWebChromeClient.console: (main) [2335,2335] [object Object] (1:https://www.stubhub.com/bfx/static/js/main.ee429248.chunk.js){color}\r\n{color:#d04437}[INFO] : beforeload: stubhub://stubhub.com/?{color}performer_id=140&OSID=AppLinks:Performer&link_click_id=697575061536878628\r\n{color:#d04437}[INFO] : error: stubhub://stubhub.com/?performer_id=140&OSID=AppLinks:Performer&link_click_id=697575061536878628 : net::ERR_UNKNOWN_URL_SCHEME : -10{color}\r\n{color:#d04437}[INFO] : load: stubhub://stubhub.com/?performer_id=140&OSID=AppLinks:Performer&link_click_id=697575061536878628{color}\r\n[ERROR] : chromium: [ERROR:web_contents_delegate.cc(203)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.\r\n[ERROR] : chromium: [ERROR:web_contents_delegate.cc(203)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.\r\n[INFO] : load: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[WARN] : chromium: [WARNING:spdy_session.cc(3317)] Received HEADERS for invalid stream 5\r\n{code}\r\n\r\nThe iOS log is:\r\n\r\n{code}\r\n[INFO] : Launching iOS Simulator\r\n[INFO] : test/1.0 (0.0.0.(null))\r\n[INFO] : test 1.0 (Powered by Titanium 8.0.1.c4f6f25c7d)\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] : beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n{color:#d04437}[INFO] : error: https://www.stubhub.com/cal-bears-football-tickets/performer/140/ : unsupported URL : -1002{color}\r\n\r\n1002 = Titanium.UI.URL_ERROR_UNSUPPORTED_SCHEME\r\n{code}\r\n\r\nOne difference between Android and iOS is with the error event. Android gives the actual URL that caused the error while iOS gave the original URL, not the stubhub:// URL scheme.\r\n\r\nThe code is trivial\r\n\r\n{code:javascript}\r\nvar window = Ti.UI.createWindow({\r\n backgroundColor : 'white',\r\n layout : 'vertical'\r\n});\r\n\r\nwindow.open();\r\n\r\nvar webview = Ti.UI.createWebView({\r\n url : 'https://www.stubhub.com/cal-bears-football-tickets/performer/140/'\r\n});\r\nwebview.addEventListener('load', function(e) {\r\n var url = e.url;\r\n Ti.API.info('load: ' + url);\r\n});\r\n\r\nwebview.addEventListener('beforeload', function(e) {\r\n var url = e.url;\r\n Ti.API.info('beforeload: ' + url);\r\n});\r\n\r\nwebview.addEventListener('error', function(e) {\r\n var url = e.url;\r\n Ti.API.info('error: ' + url + ' : ' + e.error + ' : ' + e.code);\r\n});\r\nwindow.add(webview);\r\n{code}\r\n", "attachment": [ { "id": "66912", "filename": "Screenshot_20190903-163450.jpg", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-09-03T23:36:46.000+0000", "size": 254151, "mimeType": "image/jpeg" } ], "flagged": false, "summary": "WebView does not handle websites that redirect to url-scheme with SDK 8", "creator": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Operating System\r\n Name = Mac OS X\r\n Version = 10.14.6\r\n Architecture = 64bit\r\n # CPUs = 8\r\n Memory = 68719476736\r\nNode.js\r\n Node.js Version = 8.4.0\r\n npm Version = 6.11.2\r\nTitanium CLI\r\n CLI Version = 5.2.1\r\nTitanium SDK\r\n SDK Version = 8.0.1.GA\r\n SDK Path = /Users/jrf/Library/Application Support/Titanium/mobilesdk/osx/8.0.1.GA\r\n Target Platform = android", "comment": { "comments": [ { "id": "451076", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Hello,\r\nThanks for letting us know. Can you please test it on SDK 8.1.1.GA? To install this please open terminal and type: *appc ti sdk install 8.1.1.GA*", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-09-04T09:16:11.000+0000", "updated": "2019-09-04T09:16:11.000+0000" }, { "id": "451081", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Same results with 8.1.1.GA and 8.3.0.v20190829124521 for both iOS and Android. This is a pretty common feature where a company has both a mobile website and a mobile application.", "updateAuthor": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-09-04T13:00:10.000+0000", "updated": "2019-09-04T13:00:10.000+0000" }, { "id": "451082", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "body": "These websites worked fine with the 7.x SDK in case that wasn't clear. We update this particular app once a year so the last time it was built was with the version 7 SDK.", "updateAuthor": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-09-04T13:01:45.000+0000", "updated": "2019-09-04T13:01:45.000+0000" }, { "id": "451459", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~jfalcone], I have tested your sample code with the SDK 8.1.1.GA in ios simulator, I didn't seen any error in the log, here is my log \r\n{code}\r\n[DEBUG] Reading stylesheet from: /Users/sharifabudarda/Library/Developer/CoreSimulator/Devices/A7F77572-0DEB-4EBE-B187-AB053E29C899/data/Containers/Bundle/Application/C0D80D8C-94AD-4031-BA63-B265C1C15656/newclassicpro.app/stylesheet.plist\r\n[INFO] newclassicpro 1.0 (Powered by Titanium 8.1.1.0148ee6e79)\r\n[DEBUG] Firing app event: started\r\n[DEBUG] Application booted in 1251.059055 ms\r\n[TRACE] updating tiapp metadata with Appcelerator Platform...\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[TRACE] Uploaded tiapp metadata with Appcelerator Platform!\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] beforeload: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n[INFO] load: https://www.stubhub.com/cal-bears-football-tickets/performer/140/\r\n{code}\r\n", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-09-17T19:30:04.000+0000", "updated": "2019-09-17T19:30:04.000+0000" }, { "id": "451466", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "body": "In my view, this is worse because this means that on different platforms the webView is giving different results. I cut and pasted the log from an iPhone 7 iOS 12.4 simulator. \r\n\r\nI don't know what simulator you used but probably it was different. Were you testing on an iOS 13 simulator? \r\n\r\nThe webView should give the IDENTICAL results across iOS. If it doesn't, then that should be documented. This is a very serious issue for our platform as many of our partners use url-schemes. We received the same results with 8.0.1, 8.1.1, and an 8.3 daily build.", "updateAuthor": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-09-17T22:17:06.000+0000", "updated": "2019-09-17T22:17:06.000+0000" }, { "id": "452453", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~jfalcone], I tested with ios simulator 12.4, iPhone 7 plus. I just tested with SDK 8.2.0.GA. There is no error and the webview loads just fine. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-11-04T18:56:57.000+0000", "updated": "2019-11-04T18:56:57.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }