{ "id": "173814", "key": "TIMOB-27189", "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": [], "resolution": { "id": "10000", "description": "", "name": "Done" }, "resolutiondate": "2019-08-21T03:57:29.000+0000", "created": "2019-06-27T08:50:17.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "20791", "name": "Release 8.0.2", "archived": false, "released": true, "releaseDate": "2019-06-18" } ], "issuelinks": [ { "id": "57818", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "173873", "key": "TIMOB-27238", "fields": { "summary": "Android: Allow \"onlink\" property to be set for first time after creating WebView", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": null, "updated": "2019-08-21T19:17:20.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": [], "description": "The customer is facing this issue on using *onlink* property of webview. On SDK 8.0.2.GA when webview is created though xml file using onlink property of webview, it provides run time error(android) and the app is crashing on iOS device.\r\n\r\n*Note:*\r\n\r\nThe customer noticed that *onlink* is working properly only if the webview is created inside the controller. We also tested this. On iOS,it worked properly but on android,it provides run time error. \r\n\r\n\r\n\r\n*Test Steps:*\r\n\r\n1. Open Studio\r\n2. Copy the sample code and paste via studio\r\n3. Run on android and ios both. The app is crashing on iOS. On android, we got run time error in console.\r\n\r\n*Test code:*\r\n\r\n*index.js*\r\n\r\n{code}\r\nvar handleBeforeLoadListener = function(evt) {\r\n\tconsole.log(JSON.stringify(evt));\r\n};\r\n\r\n\r\n$.webComponent.url = 'webpage.html';\r\n\r\n$.index.open();\r\n{code}\r\n\r\nindex.xml\r\n{code}\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n\r\n*Test Output:*\r\n\r\n*iOS Crashlog:*\r\n{code}\r\n[ERROR] : The application has crashed with an uncaught exception 'NSInvalidArgumentException'.\r\n[ERROR] : Reason:\r\n[ERROR] : -[__NSCFString executeWithArguments:]: unrecognized selector sent to instance 0x2810962e0\r\n[ERROR] : Stack trace:\r\n[ERROR] : 0 CoreFoundation 0x000000023a1c0530 + 252\r\n[ERROR] : 1 libobjc.A.dylib 0x000000023939b9f8 objc_exception_throw + 56\r\n[ERROR] : 2 CoreFoundation 0x000000023a0dd278 + 0\r\n[ERROR] : 3 CoreFoundation 0x000000023a1c5d60 + 1408\r\n[ERROR] : 4 CoreFoundation 0x000000023a1c79fc _CF_forwarding_prep_0 + 92\r\n[ERROR] : 5 Onlink 0x000000010458455c Onlink + 263516\r\n[ERROR] : 6 WebKit 0x00000002497b3440 + 584\r\n[ERROR] : 7 WebKit 0x0000000249819fd4 + 2544\r\n[ERROR] : 8 WebKit 0x000000024981957c + 376\r\n[ERROR] : 9 WebKit 0x00000002498193cc + 108\r\n[ERROR] : 10 WebKit 0x0000000249a19c08 + 108\r\n[ERROR] : 11 WebKit 0x0000000249a146e0 + 100\r\n[ERROR] : 12 WebKit 0x000000024967deb0 + 120\r\n[ERROR] : 13 WebKit 0x000000024983b320 + 32\r\n[ERROR] : 14 WebKit 0x000000024966ea20 + 148\r\n[ERROR] : 15 WebKit 0x0000000249671510 + 712\r\n[ERROR] : 16 JavaScriptCore 0x00000002412d3aa0 + 276\r\n[ERROR] : 17 JavaScriptCore 0x00000002412d3d60 + 36\r\n[ERROR] : 18 CoreFoundation 0x000000023a1522bc + 24\r\n[ERROR] : 19 CoreFoundation 0x000000023a15223c + 88\r\n[ERROR] : 20 CoreFoundation 0x000000023a151b24 + 176\r\n[ERROR] : 21 CoreFoundation 0x000000023a14ca60 + 1004\r\n[ERROR] : 22 CoreFoundation 0x000000023a14c354 CFRunLoopRunSpecific + 436\r\n[ERROR] : 23 GraphicsServices 0x000000023c34c79c GSEventRunModal + 104\r\n[ERROR] : 24 UIKitCore 0x00000002665b8b68 UIApplicationMain + 212\r\n[ERROR] : 25 Onlink 0x000000010454b624 Onlink + 30244\r\n[ERROR] : 26 libdyld.dylib 0x0000000239c128e0 + 4\r\n{code}\r\n\r\n*Android:*\r\n{code}\r\nERROR] : TiAssetHelper: Error while opening asset \"Resources/alloy/controllers/webpage.html\":\r\n[ERROR] : TiAssetHelper: java.io.FileNotFoundException: Resources/alloy/controllers/webpage.html\r\n[ERROR] : TiAssetHelper: \tat android.content.res.AssetManager.openAsset(Native Method)\r\n[ERROR] : TiAssetHelper: \tat android.content.res.AssetManager.open(AssetManager.java:690)\r\n[ERROR] : TiAssetHelper: \tat android.content.res.AssetManager.open(AssetManager.java:664)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.kroll.util.KrollAssetHelper.openAsset(KrollAssetHelper.java:135)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.io.TiResourceFile.getInputStream(TiResourceFile.java:72)\r\n[ERROR] : TiAssetHelper: \tat ti.modules.titanium.ui.widget.webview.TiUIWebView.setUrl(TiUIWebView.java:612)\r\n[ERROR] : TiAssetHelper: \tat ti.modules.titanium.ui.widget.webview.TiUIWebView.processProperties(TiUIWebView.java:462)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:1296)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:506)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:513)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.proxy.TiViewProxy.add(TiViewProxy.java:602)\r\n[ERROR] : TiAssetHelper: \tat ti.modules.titanium.ui.WindowProxy.windowCreated(WindowProxy.java:305)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.TiActivityWindows.windowCreated(TiActivityWindows.java:57)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.TiBaseActivity.windowCreated(TiBaseActivity.java:578)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:726)\r\n[ERROR] : TiAssetHelper: \tat org.appcelerator.titanium.TiActivity.onCreate(TiActivity.java:47)\r\n[ERROR] : TiAssetHelper: \tat android.app.Activity.performCreate(Activity.java:7372)\r\n[ERROR] : TiAssetHelper: \tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)\r\n[ERROR] : TiAssetHelper: \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)\r\n[ERROR] : TiAssetHelper: \tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)\r\n[ERROR] : TiAssetHelper: \tat android.app.ActivityThread.-wrap12(Unknown Source:0)\r\n[ERROR] : TiAssetHelper: \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)\r\n[ERROR] : TiAssetHelper: \tat android.os.Handler.dispatchMessage(Handler.java:108)\r\n[ERROR] : TiAssetHelper: \tat android.os.Looper.loop(Looper.java:166)\r\n[ERROR] : TiAssetHelper: \tat android.app.ActivityThread.main(ActivityThread.java:7425)\r\n[ERROR] : TiAssetHelper: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : TiAssetHelper: \tat com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)\r\n[ERROR] : TiAssetHelper: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)\r\n[ERROR] : TiExceptionHandler: (main) [11,502] null\r\n[ERROR] : TiExceptionHandler:\r\n[ERROR] : TiExceptionHandler: java.io.Reader.(Reader.java:78)\r\n[ERROR] : TiExceptionHandler: java.io.InputStreamReader.(InputStreamReader.java:97)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.widget.webview.TiUIWebView.setUrl(TiUIWebView.java:613)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.widget.webview.TiUIWebView.processProperties(TiUIWebView.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:1296)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:506)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:513)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.add(TiViewProxy.java:602)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.WindowProxy.windowCreated(WindowProxy.java:305)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiActivityWindows.windowCreated(TiActivityWindows.java:57)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiBaseActivity.windowCreated(TiBaseActivity.java:578)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:726)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiActivity.onCreate(TiActivity.java:47)\r\n[ERROR] : TiExceptionHandler: android.app.Activity.performCreate(Activity.java:7372)\r\n[ERROR] : TiExceptionHandler: android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.-wrap12(Unknown Source:0)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)\r\n[ERROR] : TiExceptionHandler: android.os.Handler.dispatchMessage(Handler.java:108)\r\n[ERROR] : TiExceptionHandler: android.os.Looper.loop(Looper.java:166)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.main(ActivityThread.java:7425)\r\n[ERROR] : TiExceptionHandler: java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : TiExceptionHandler: com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)\r\n[ERROR] : TiExceptionHandler: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)\r\n[ERROR] : TiExceptionHandler: (main) [1,503] null\r\n[ERROR] : TiExceptionHandler:\r\n[ERROR] : TiExceptionHandler: java.io.Reader.(Reader.java:78)\r\n[ERROR] : TiExceptionHandler: java.io.InputStreamReader.(InputStreamReader.java:97)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.widget.webview.TiUIWebView.setUrl(TiUIWebView.java:613)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.widget.webview.TiUIWebView.processProperties(TiUIWebView.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:1296)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:506)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:513)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:496)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:462)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.proxy.TiViewProxy.add(TiViewProxy.java:602)\r\n[ERROR] : TiExceptionHandler: ti.modules.titanium.ui.WindowProxy.windowCreated(WindowProxy.java:305)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiActivityWindows.windowCreated(TiActivityWindows.java:57)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiBaseActivity.windowCreated(TiBaseActivity.java:578)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:726)\r\n[ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiActivity.onCreate(TiActivity.java:47)\r\n[ERROR] : TiExceptionHandler: android.app.Activity.performCreate(Activity.java:7372)\r\n[ERROR] : TiExceptionHandler: android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.-wrap12(Unknown Source:0)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)\r\n[ERROR] : TiExceptionHandler: android.os.Handler.dispatchMessage(Handler.java:108)\r\n[ERROR] : TiExceptionHandler: android.os.Looper.loop(Looper.java:166)\r\n[ERROR] : TiExceptionHandler: android.app.ActivityThread.main(ActivityThread.java:7425)\r\n[ERROR] : TiExceptionHandler: java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : TiExceptionHandler: com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)\r\n[ERROR] : TiExceptionHandler: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)\r\n{code}", "attachment": [ { "id": "66767", "filename": "Onlink.zip", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-07-11T15:29:38.000+0000", "size": 8704762, "mimeType": "application/zip" } ], "flagged": false, "summary": "Webview:Onlink property is not working properly", "creator": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Appcelerator Command-Line Interface, version 7.0.11\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.13.6\r\n Architecture = 64bit\r\n # CPUs = 4\r\n Memory = 8589934592\r\nNode.js\r\n Node.js Version = 8.9.1\r\n npm Version = 5.5.1\r\nTitanium CLI\r\n CLI Version = 5.1.1\r\nTitanium SDK\r\n SDK Version = 8.0.2.GA\r\niOS:iPhone SE(12.2), Android:Huawei Y9 2018(Android 8)", "comment": { "comments": [ { "id": "449709", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~gmathews], [~jquick], Can you please look into this issue. We are able to reproduce the issue. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-07-10T14:42:26.000+0000", "updated": "2019-07-10T14:42:26.000+0000" }, { "id": "449720", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~sdarda], regarding the Android issue, it has nothing to do with \"onlink\". The \"FileNotFoundException\" is telling you exactly what's wrong. It's failing to find the HTML file.\r\n\r\nThe issue is the WebView was given a \"relative path\" to the HTML file. The relative path handling between Android and iOS are different. On Android, file paths are relative to the JavaScript file (or XML file in Alloy) that invoked it. On iOS, file paths are relative to the app's \"Resources\" directory.\r\n\r\nThe best solution is to give it an \"absolute path\" to the HTML file. So, the solution is to change this...\r\n{code:javascript}\r\n$.webComponent.url = 'webpage.html';\r\n{code}\r\n...to the below...\r\n{code:javascript}\r\n// Add a leading slash '/' in front of the HTML file path.\r\n$.webComponent.url = '/webpage.html';\r\n{code}\r\n\r\nUsing an absolute path as shown above will work on both Android and iOS.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-11T03:50:30.000+0000", "updated": "2019-07-11T03:52:10.000+0000" }, { "id": "449730", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~jquick], The issue in the iOS is still there after making the above change. App still crashes in open \r\n\r\n{code}\r\n[ERROR] The application has crashed with an uncaught exception 'NSInternalInconsistencyException'.\r\n[ERROR] Reason:\r\n[ERROR] Completion handler passed to -[TiUIWebView webView:decidePolicyForNavigationAction:decisionHandler:] was not called\r\n[ERROR] Stack trace:\r\n[ERROR] 0 CoreFoundation 0x000000010f0746fb __exceptionPreprocess + 331\r\n[ERROR] 1 libobjc.A.dylib 0x000000010df2fac5 objc_exception_throw + 48\r\n[ERROR] 2 CoreFoundation 0x000000010f074555 +[NSException raise:format:] + 197\r\n[ERROR] 3 WebKit 0x000000011043c1fd _ZN6WebKit28CompletionHandlerCallCheckerD2Ev + 125\r\n[ERROR] 4 WebKit 0x00000001104e6f1d _ZNK3WTF20ThreadSafeRefCountedIN6WebKit28CompletionHandlerCallCheckerELNS_17DestructionThreadE0EE5derefEv + 33\r\n[ERROR] 5 WebKit 0x00000001104c85c5 _ZZN3WTF8BlockPtrIFv24WKNavigationActionPolicyEE12fromCallableIZN6WebKit15NavigationState16NavigationClient31decidePolicyForNavigationActionERNS5_12WebPageProxyEONS_3RefIN3API16NavigationActionENS_13DumbPtrTraitsISC_EEEEONSA_INS5_27WebFramePolicyListenerProxyENSD_ISH_EEEEPNSB_6ObjectEE3$_5EES3_T_ENUlPKvE_8__invokeESQ_ + 37\r\n[ERROR] 6 libsystem_blocks.dylib 0x00000001114e99cd _Block_release + 105\r\n[ERROR] 7 WebKit 0x00000001104c5406 _ZN6WebKit15NavigationState16NavigationClient31decidePolicyForNavigationActionERNS_12WebPageProxyEON3WTF3RefIN3API16NavigationActionENS4_13DumbPtrTraitsIS7_EEEEONS5_INS_27WebFramePolicyListenerProxyENS8_ISC_EEEEPNS6_6ObjectE + 852\r\n[ERROR] 8 WebKit 0x0000000110528d81 _ZN6WebKit12WebPageProxy31decidePolicyForNavigationActionEON3WTF3RefINS_15WebProcessProxyENS1_13DumbPtrTraitsIS3_EEEERNS_13WebFrameProxyEON7WebCore18SecurityOriginDataEyONS_20NavigationActionDataEONS_13FrameInfoDataEyRKNSA_15ResourceRequestEOSH_ON3IPC17FormDataReferenceEONSA_16ResourceResponseERKNS_8UserDataEONS2_INS0_20PolicyDecisionSenderENS4_IST_EEEE + 3299\r\n[ERROR] 9 WebKit 0x0000000110528051 _ZN6WebKit12WebPageProxy42decidePolicyForNavigationActionAsyncSharedEON3WTF3RefINS_15WebProcessProxyENS1_13DumbPtrTraitsIS3_EEEEyON7WebCore18SecurityOriginDataENS8_21PolicyCheckIdentifierEyONS_20NavigationActionDataEONS_13FrameInfoDataEyRKNS8_15ResourceRequestEOSG_ON3IPC17FormDataReferenceEONS8_16ResourceResponseERKNS_8UserDataEy + 283\r\n[ERROR] 10 WebKit 0x0000000110527f06 _ZN6WebKit12WebPageProxy36decidePolicyForNavigationActionAsyncEyON7WebCore18SecurityOriginDataENS1_21PolicyCheckIdentifierEyONS_20NavigationActionDataEONS_13FrameInfoDataEyRKNS1_15ResourceRequestEOS9_ON3IPC17FormDataReferenceEONS1_16ResourceResponseERKNS_8UserDataEy + 102\r\n[ERROR] 11 WebKit 0x0000000110730b06 _ZN3IPC22callMemberFunctionImplIN6WebKit12WebPageProxyEMS2_FvyON7WebCore18SecurityOriginDataENS3_21PolicyCheckIdentifierEyONS1_20NavigationActionDataEONS1_13FrameInfoDataEyRKNS3_15ResourceRequestEOSB_ONS_17FormDataReferenceEONS3_16ResourceResponseERKNS1_8UserDataEyENSt3__15tupleIJyS4_S6_yS7_S9_ySB_SB_SF_SH_SJ_yEEEJLm0ELm1ELm2ELm3ELm4ELm5ELm6ELm7ELm8ELm9ELm10ELm11ELm12EEEEvPT_T0_OT1_NSO_16integer_sequenceImJXspT2_EEEE + 129\r\n[ERROR] 12 WebKit 0x000000011072aaa7 _ZN3IPC13handleMessageIN8Messages12WebPageProxy36DecidePolicyForNavigationActionAsyncEN6WebKit12WebPageProxyEMS5_FvyON7WebCore18SecurityOriginDataENS6_21PolicyCheckIdentifierEyONS4_20NavigationActionDataEONS4_13FrameInfoDataEyRKNS6_15ResourceRequestEOSE_ONS_17FormDataReferenceEONS6_16ResourceResponseERKNS4_8UserDataEyEEEvRNS_7DecoderEPT0_T1_ + 102\r\n[ERROR] 13 WebKit 0x00000001103932a6 _ZN3IPC18MessageReceiverMap15dispatchMessageERNS_10ConnectionERNS_7DecoderE + 126\r\n[ERROR] 14 WebKit 0x0000000110549762 _ZN6WebKit15WebProcessProxy17didReceiveMessageERN3IPC10ConnectionERNS1_7DecoderE + 24\r\n[ERROR] 15 WebKit 0x00000001103861c8 _ZN3IPC10Connection15dispatchMessageENSt3__110unique_ptrINS_7DecoderENS1_14default_deleteIS3_EEEE + 108\r\n[ERROR] 16 WebKit 0x0000000110388bdd _ZN3IPC10Connection24dispatchIncomingMessagesEv + 717\r\n[ERROR] 17 JavaScriptCore 0x0000000108d271f4 _ZN3WTF7RunLoop11performWorkEv + 228\r\n[ERROR] 18 JavaScriptCore 0x0000000108d27482 _ZN3WTF7RunLoop11performWorkEPv + 34\r\n[ERROR] 19 CoreFoundation 0x000000010efdbbe1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17\r\n[ERROR] 20 CoreFoundation 0x000000010efdb463 __CFRunLoopDoSources0 + 243\r\n[ERROR] 21 CoreFoundation 0x000000010efd5b1f __CFRunLoopRun + 1231\r\n[ERROR] 22 CoreFoundation 0x000000010efd5302 CFRunLoopRunSpecific + 626\r\n[ERROR] 23 GraphicsServices 0x00000001134fb2fe GSEventRunModal + 65\r\n[ERROR] 24 UIKitCore 0x000000011ad64ba2 UIApplicationMain + 140\r\n[ERROR] 25 TestBeforeload 0x000000010884a2e6 main + 1046\r\n[ERROR] 26 libdyld.dylib 0x0000000111463541 start + 1\r\n[ERROR] 27 ??? 0x0000000000000001 0x0 + 1\r\n{code}\r\nCan you please try the attached project. Using the absolute path the error in endroid is solved. The iOS crash is still occuring with the 8.0.2.GA SDK. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-07-11T15:31:16.000+0000", "updated": "2019-07-11T15:31:56.000+0000" }, { "id": "449741", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "This seems to be a limitation in Alloy. You can't assign functions directly to properties like it is required for {{onlink}}.\r\n\r\n*EDIT:* The workaround i provided before did not work. [~jquick] is currently trying out another solution.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-07-11T21:01:21.000+0000", "updated": "2019-07-11T22:07:15.000+0000" }, { "id": "449745", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The following will work on both Android and iOS.\r\n\r\nYou should set the onlink callback to empty string in the XML file and then set the onlink property directly in your JavaScript. Also, don't forget the leading slash for the HTML file to reference it by absolute path since relative path handling is different between Android and iOS.\r\n\r\nindex.xml\r\n{code:xml}\r\n\r\n\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n\r\nindex.js\r\n{code:javascript}\r\n$.webComponent.onlink = function(e) {\r\n\talert('The onlink callback was successfully invoked.');\r\n\treturn true; // <- Return true to allow link to load. Return false to override.\r\n};\r\n$.webComponent.url = '/webpage.html';\r\n$.index.open();\r\n{code}\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-11T22:14:23.000+0000", "updated": "2019-07-11T22:14:23.000+0000" }, { "id": "449748", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~sdarda], Jan has deleted his code from his comment in favor of mine. My change will work. Try it out.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-11T22:39:45.000+0000", "updated": "2019-07-11T22:39:45.000+0000" }, { "id": "449758", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~jquick], your code worked. I have deleted my other reply. Can you confirm what was wrong on the previous code and also in the customer code? If this is a limitation in Alloy as Jan said, any plan on fixing this in the future or maybe document the way of handling onlink in iOS? Thanks for the guide. ", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-07-12T15:10:21.000+0000", "updated": "2019-07-12T19:35:45.000+0000" }, { "id": "449768", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-12T18:07:23.000+0000", "updated": "2019-07-12T21:57:17.000+0000" }, { "id": "449774", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~jquick], Thank you for the information. Also, thanks for creating the other ticket. I already provided your solution to the customer. Customer will be happy to see the improvement ticket. I will update the customer on that. Do you think we keep this ticket open? or we can close it? Thanks for your support. ", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-07-12T19:43:12.000+0000", "updated": "2019-07-12T19:43:24.000+0000" }, { "id": "449779", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-12T21:57:03.000+0000", "updated": "2019-07-12T21:57:03.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }