Touch event doesn not work when webView added to page

Hello,

I have an app with several scenes and in each one I have an image at the top with a menu drawn. I use a touch event to get the x/y and based on that I go to other scenes. It works great on all of my pages except one. It is a scene that I have added a native webView to for displaying a website inside the app. Is this a bug?

Below is the code to that scene.

Thanks!

  
----------------------------------------------------------------------------------  
--  
-- SceneFacebookWeb.lua  
--  
----------------------------------------------------------------------------------  
  
local storyboard = require( "storyboard" )  
storyboard.removeAll()  
local scene = storyboard.newScene()  
local widget = require ( "widget" )  
local facebook = require ( "facebook" )  
local imgHeader  
local webView = native.newWebView( 0, 122, 320, 357 )  
webView:request( "http://www.facebook.com/xxxxxxxx" )  
  
-- Touch event listener for background image  
local function onSceneTouch( self, event )  
 --MENU BAR  
 if event.x \> 0 and event.y \> 90 and event.x \< 48 and event.y \< 121 then  
 scrollView:removeSelf()  
 storyboard.gotoScene( "SceneHome" )  
 end  
 if event.x \> 47 and event.y \> 90 and event.x \< 100 and event.y \< 121 then  
 scrollView:removeSelf()  
 storyboard.gotoScene( "SceneEvents" )  
 end  
 if event.x \> 99 and event.y \> 90 and event.x \< 182 and event.y \< 121 then  
 scrollView:removeSelf()  
 storyboard.gotoScene( "SceneHappyHour" )  
 end  
 if event.x \> 181 and event.y \> 90 and event.x \< 251 and event.y \< 121 then  
 scrollView:removeSelf()  
 storyboard.gotoScene( "SceneFacebook" )  
 end  
 if event.x \> 250 and event.y \> 90 and event.x \< 320 and event.y \< 121 then  
 scrollView:removeSelf()  
 storyboard.gotoScene( "SceneLocation" )  
 end  
 return true  
end  
---------------------------------------------------------------------------------  
-- BEGINNING OF YOUR IMPLEMENTATION  
---------------------------------------------------------------------------------  
  
-- Called when the scene's view does not exist:  
function scene:createScene( event )  
 local screenGroup = self.view  
 imgHeader = display.newImage( "Header.jpg")  
 screenGroup:insert( imgHeader )  
 imgHeader:addEventListener("touch", imgHeader) -- [!] added due to flag code  
 display.setDefault( "background", 0, 0, 0 )  
 screenGroup:insert( imgHeader )  
end  
-- Called immediately after scene has moved onscreen:  
function scene:enterScene( event )  
 imgHeader.ready = true  
  
 --[[  
 -- Update Lua memory text display  
 local showMem = function()  
 imgHeader:addEventListener( "touch", imgHeader )  
 end  
 local memTimer = timer.performWithDelay( 1000, showMem, 1 )  
 --]]  
end  
  
-- Called when scene is about to move offscreen:  
function scene:exitScene( event )  
 local group = self.view  
 imgHeader.ready = false  
end  
  
-- Called prior to the removal of scene's "view" (display group)  
function scene:destroyScene( event )  
 local group = self.view  
end  
---------------------------------------------------------------------------------  
-- END OF YOUR IMPLEMENTATION  
---------------------------------------------------------------------------------  
  
-- "createScene" event is dispatched if scene's view does not exist  
scene:addEventListener( "createScene", scene )  
  
-- "enterScene" event is dispatched whenever scene transition has finished  
scene:addEventListener( "enterScene", scene )  
  
-- "exitScene" event is dispatched before next scene's transition begins  
scene:addEventListener( "exitScene", scene )  
  
-- "destroyScene" event is dispatched before view is unloaded, which can be  
-- automatically unloaded in low memory situations, or explicitly via a call to  
-- storyboard.purgeScene() or storyboard.removeScene().  
scene:addEventListener( "destroyScene", scene )  
---------------------------------------------------------------------------------  
  
return scene  

[import]uid: 184193 topic_id: 35504 reply_id: 335504[/import]

Has anyone else had this problem? I still cannot get it to work. Below is the latest code.

Thanks!

---------------------------------------------------------------------------------- -- -- SceneFacebookWeb.lua -- ---------------------------------------------------------------------------------- local storyboard = require( "storyboard" ) storyboard.removeAll() local scene = storyboard.newScene() local widget = require ( "widget" ) local facebook = require ( "facebook" ) local appId = "398264040244678" local imgHeader local webView -- Touch event listener for background image local function onSceneTouch( self, event ) if event.phase == "began" then --MENU BAR if event.x \> 0 and event.y \> 90 and event.x \< 48 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneHome" ) end if event.x \> 47 and event.y \> 90 and event.x \< 100 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneEvents" ) end if event.x \> 99 and event.y \> 90 and event.x \< 182 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneHappyHour" ) end if event.x \> 181 and event.y \> 90 and event.x \< 251 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneFacebook" ) end if event.x \> 250 and event.y \> 90 and event.x \< 320 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneLocation" ) end end return true end --------------------------------------------------------------------------------- -- BEGINNING OF YOUR IMPLEMENTATION --------------------------------------------------------------------------------- -- Called when the scene's view does not exist: function scene:createScene( event ) local screenGroup = self.view imgHeader = display.newImage( "Header.jpg") screenGroup:insert( imgHeader ) imgHeader:addEventListener("touch", imgHeader) -- [!] added due to flag code display.setDefault( "background", 0, 0, 0 ) webView = native.newWebView( 0, 123, 320, 357 ) webView:request( "http://www.facebook.com" ) group:insert( webView ) screenGroup:insert( imgHeader ) end -- Called immediately after scene has moved onscreen: function scene:enterScene( event ) --storyboard.purgeScene( "sceneFacebook" ) imgHeader.ready = true --[[-- Update Lua memory text display local showMem = function() imgHeader:addEventListener( "touch", imgHeader ) end local memTimer = timer.performWithDelay( 1000, showMem, 1 ) --]] end -- Called when scene is about to move offscreen: function scene:exitScene( event ) local group = self.view imgHeader.ready = false end -- Called prior to the removal of scene's "view" (display group) function scene:destroyScene( event ) local group = self.view end --------------------------------------------------------------------------------- -- END OF YOUR IMPLEMENTATION --------------------------------------------------------------------------------- -- "createScene" event is dispatched if scene's view does not exist scene:addEventListener( "createScene", scene ) -- "enterScene" event is dispatched whenever scene transition has finished scene:addEventListener( "enterScene", scene ) -- "exitScene" event is dispatched before next scene's transition begins scene:addEventListener( "exitScene", scene ) -- "destroyScene" event is dispatched before view is unloaded, which can be -- automatically unloaded in low memory situations, or explicitly via a call to -- storyboard.purgeScene() or storyboard.removeScene(). scene:addEventListener( "destroyScene", scene ) --------------------------------------------------------------------------------- return scene

Has anyone else had this problem? I still cannot get it to work. Below is the latest code.

Thanks!

---------------------------------------------------------------------------------- -- -- SceneFacebookWeb.lua -- ---------------------------------------------------------------------------------- local storyboard = require( "storyboard" ) storyboard.removeAll() local scene = storyboard.newScene() local widget = require ( "widget" ) local facebook = require ( "facebook" ) local appId = "398264040244678" local imgHeader local webView -- Touch event listener for background image local function onSceneTouch( self, event ) if event.phase == "began" then --MENU BAR if event.x \> 0 and event.y \> 90 and event.x \< 48 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneHome" ) end if event.x \> 47 and event.y \> 90 and event.x \< 100 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneEvents" ) end if event.x \> 99 and event.y \> 90 and event.x \< 182 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneHappyHour" ) end if event.x \> 181 and event.y \> 90 and event.x \< 251 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneFacebook" ) end if event.x \> 250 and event.y \> 90 and event.x \< 320 and event.y \< 121 then webView:removeSelf() storyboard.gotoScene( "SceneLocation" ) end end return true end --------------------------------------------------------------------------------- -- BEGINNING OF YOUR IMPLEMENTATION --------------------------------------------------------------------------------- -- Called when the scene's view does not exist: function scene:createScene( event ) local screenGroup = self.view imgHeader = display.newImage( "Header.jpg") screenGroup:insert( imgHeader ) imgHeader:addEventListener("touch", imgHeader) -- [!] added due to flag code display.setDefault( "background", 0, 0, 0 ) webView = native.newWebView( 0, 123, 320, 357 ) webView:request( "http://www.facebook.com" ) group:insert( webView ) screenGroup:insert( imgHeader ) end -- Called immediately after scene has moved onscreen: function scene:enterScene( event ) --storyboard.purgeScene( "sceneFacebook" ) imgHeader.ready = true --[[-- Update Lua memory text display local showMem = function() imgHeader:addEventListener( "touch", imgHeader ) end local memTimer = timer.performWithDelay( 1000, showMem, 1 ) --]] end -- Called when scene is about to move offscreen: function scene:exitScene( event ) local group = self.view imgHeader.ready = false end -- Called prior to the removal of scene's "view" (display group) function scene:destroyScene( event ) local group = self.view end --------------------------------------------------------------------------------- -- END OF YOUR IMPLEMENTATION --------------------------------------------------------------------------------- -- "createScene" event is dispatched if scene's view does not exist scene:addEventListener( "createScene", scene ) -- "enterScene" event is dispatched whenever scene transition has finished scene:addEventListener( "enterScene", scene ) -- "exitScene" event is dispatched before next scene's transition begins scene:addEventListener( "exitScene", scene ) -- "destroyScene" event is dispatched before view is unloaded, which can be -- automatically unloaded in low memory situations, or explicitly via a call to -- storyboard.purgeScene() or storyboard.removeScene(). scene:addEventListener( "destroyScene", scene ) --------------------------------------------------------------------------------- return scene

Any luck with this? I know webViews always sit on top of display objects, but I need some sort of way to work around this problem.

Any luck with this? I know webViews always sit on top of display objects, but I need some sort of way to work around this problem.