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

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

jcesarmobile commented on a change in pull request #98: CB-13555 (ios) Present 
notification view controller by inappbrowser view controller
URL: 
https://github.com/apache/cordova-plugin-dialogs/pull/98#discussion_r150903309
 
 

 ##########
 File path: src/ios/CDVNotification.m
 ##########
 @@ -228,9 +228,19 @@ - (void)beep:(CDVInvokedUrlCommand*)command
 
 -(UIViewController *)getTopPresentedViewController {
     UIViewController *presentingViewController = self.viewController;
-    while(presentingViewController.presentedViewController != nil && 
![presentingViewController.presentedViewController isBeingDismissed])
-    {
-        presentingViewController = 
presentingViewController.presentedViewController;
+    if (presentingViewController.view.window != [UIApplication 
sharedApplication].keyWindow){
+        //for wkwebview, the privacy screen plugin is presented from a 
different window object
+        presentingViewController = [UIApplication 
sharedApplication].keyWindow.rootViewController;
+        while (presentingViewController.presentedViewController != nil && 
![presentingViewController.presentedViewController isBeingDismissed]){
+            presentingViewController = 
presentingViewController.presentedViewController;
+        }
+    }
+    else {
+        //for uiwebview viewcontroller, if inappbrowser or privacyscreen 
viewcontroller is presented,
+        //then they should be used to repsent the new view control.
+        while (presentingViewController.presentedViewController != nil && 
![presentingViewController.presentedViewController isBeingDismissed]){
 
 Review comment:
   I don't really know what do you mean by "privacy screen plugin", that's why 
I said that it didn't make much sense.
   The problem is about InAppBrowser plugin, right? In InAppBrowser plugin, 
it's presented in a different window for both UIWebView and WKWebView.
   If you want to put a comment, you can do it before the if and say, something 
like "Some plugins might be presented from a different window than the app 
window" or something like that, but I think the code is clear enough.

----------------------------------------------------------------
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:
us...@infra.apache.org


> (ios) Present notification view controller by inappbrowser view controller
> --------------------------------------------------------------------------
>
>                 Key: CB-13555
>                 URL: https://issues.apache.org/jira/browse/CB-13555
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-plugin-dialogs
>    Affects Versions: cordova-ios 4.5.0
>         Environment: IOS 10 and 11
>            Reporter: Jonathan Li
>              Labels: dialog, inappbrowser
>             Fix For: Master
>
>
> When inappbrowser window is shown, if main uiwebview or wkwebview calls 
> cordova Dialog plugin method to show the dialog view, the dialog should show 
> to user on top of the inappbrowser view controller.
> However, currently the dialog view is shown behind the inappbrowser view, so 
> user cannot see it or click button on the dialog 
> An similar issue was reported for barcode scanner plugin at 
> https://github.com/phonegap/phonegap-plugin-barcodescanner/issues/570
> The issue can be repeated with the below method
> function confirm(){
>     var win = window.open( "https://www.google.com";, "_blank" );
>     win.addEventListener( "loadstop", function() {
>     setTimeout(function() {
>          function onConfirm(buttonIndex) {
>             console.log('You selected button ' + buttonIndex);
>         }
>         
>         navigator.notification.confirm(
>             'You are the winner!', // message
>             onConfirm,            // callback to invoke with index of button 
> pressed
>             'Game Over',           // title
>             ['Restart','Exit']     // buttonLabels
> );
>     }, 1000 );
> });
> }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to