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

ASF GitHub Bot commented on CB-14076:
-------------------------------------

dpolivy opened a new pull request #365: CB-14076: (ios) Setting 
UIWebViewDelegate on CDVWebViewEngineProtocol doesn't work
URL: https://github.com/apache/cordova-ios/pull/365
 
 
   Attempts to use `CDVWebViewEngineProtocol::updateWithInfo` to set a new 
`UIWebViewDelegate` were not working; instead of setting the passed in 
delegate, it was setting the `CDVViewController` instance as the delegate 
instead.
   
   ### Platforms affected
   
   cordova-ios
   
   ### What does this PR do?
   
   This commit fixes the `CDVWebViewEngine` class so that the proper delegate 
is ultimately passed in to the `UIWebView` when calling `updateWithInfo`.
   
   ### What testing has been done on this change?
   
   I used the code to create a new test app, to which I applied a test plugin 
which attempts to set the `UIWebViewDelegate`. I verified that I was able to 
successfully set the delegate, and receive the events from the `UIWebView`.
   
   I also ran `npm test` and verified all tests passed.
   
   ### Checklist
   - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
   - [x] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
   - [ ] Added automated test coverage as appropriate for this change.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Setting UIWebViewDelegate via updateWithInfo doesn't work
> ---------------------------------------------------------
>
>                 Key: CB-14076
>                 URL: https://issues.apache.org/jira/browse/CB-14076
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-ios
>    Affects Versions: cordova-ios 4.5.0
>            Reporter: Dan Polivy
>            Assignee: Suraj Pindoria
>            Priority: Major
>
> I have an existing Cordova app where I have manually modified 
> {{MainViewController.m}} to add my own {{UIWebViewDelegate}} implementation 
> -- however, I'd like to do this the "right" way and use a plugin (so I can 
> truly treat the platform code as a build artifact).
> From [this 
> guide|https://github.com/apache/cordova-ios/blob/master/guides/Setting%20Delegates%2C%20Preferences%20and%20Script%20Message%20Handlers%20in%20the%20WebView.md],
>  I see that I should be able to set my {{UIWebViewDelegate}} from my plugin 
> code; however, this isn't working. My implementation is not getting called.
> In [the 
> code|https://github.com/apache/cordova-ios/blob/3507af4ac68ed13cfb4d8ecfd0e91e747a9c6875/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewEngine.m#L179],
>  it appears to be always using the {{CDVViewController}} as the delegate, no 
> matter what is passed in.
> Is this a bug? Am I just doing it wrong? What's the correct way to do this?
> My scenario here is to trap the {{didFailLoadWithError}} event for some 
> special handling (our Cordova app uses remote resources, and I want to allow 
> a retry option if they don't load). This is working just fine when I modify 
> the application source directly.
> (Also posted on SO: 
> https://stackoverflow.com/questions/50162345/how-do-you-implement-uiwebviewdelegate-from-a-cordova-ios-plugin)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to