[ 
https://issues.apache.org/jira/browse/CB-7606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14300233#comment-14300233
 ] 

Jan Misker commented on CB-7606:
--------------------------------

I had a look at this and I think the call to handleOpenURL is injected too 
soon. It seems to be injected when the dom is ready, but at that point the JS 
that defines handleOpenURL might not have been evaluated. 

I made a quick fix for myself, which boils down to checking whether 
handleOpenURL exists, and if not assign the URL to a variable. Then I can check 
whether that variable is set, and if so call handleOpenURL with it. 
Not an ideal solution, but workable for me at the moment. 
Better would be if there is a trigger to CDViewController when the scripts on a 
page did evaluate, and inject the handleOpenURL call only after that trigger.

See also here: 
https://github.com/EddyVerbruggen/Custom-URL-scheme/issues/56#issuecomment-72113000
 

> handleOpenURL handler firing more than necessary
> ------------------------------------------------
>
>                 Key: CB-7606
>                 URL: https://issues.apache.org/jira/browse/CB-7606
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>    Affects Versions: 3.5.0
>            Reporter: Paul Kane
>            Assignee: Shazron Abdullah
>             Fix For: 3.8.0
>
>
> I'm not an Obj-C or Cordova programmer so bear with me.
> Let's say my app is running. Then I hop over to my mail app and click on a 
> link (myapp://blahBlahBlah) that should open up my app. This works fine, the 
> app opens, my own URL handler (in javascript) takes over, etc.
> However in Obj-C the view controller is -- incorrectly, I believe -- storing 
> that scheme data (blahBlahBlah) in self.openURL (so that it can be picked up 
> later in processOpenURL function, called during webView initialization).
> This isn't normally a problem, except when you move to a new page 
> (window.href = "/new_page"), the webView initialization runs again and picks 
> up the old (already-acted-upon) openURL variable. (it's then set to nil, so 
> that it doesn't get acted upon a third time, fourth time, etc...).
> I might have some details wrong, but it should be fairly easy to walk through 
> with a project-wide search for "openurl". Just seems like a slightly wrong 
> logic-flow, which unfortunately is interfering with my app.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to