我已经用HTML编写了我的Corona应用程序的一些内容,并使用native.newWebview在我的应用程序中显示它。在此HTML内容中,我有指向外部网页的链接,例如https://google.com。
当用户点击我的应用中的链接时,我希望我的HTML内容保留在应用中,并且Google可以在设备的网络浏览器中打开。
但是,当他们点击我的应用中的链接时,Google会在我的应用和网络浏览器中打开。
作为一个注释,在iOS中,似乎第一次点击链接,它只在设备的默认浏览器而不是应用程序中打开,但如果您返回应用程序并再次单击该链接,它将打开在应用程序和浏览器中。对于Android,它总是在应用程序和浏览器中打开。
这是我的代码的简化版本。
main.lua
local function webListener( event )
if event.url then
system.openURL(event.url)
end
end
htmlContent = native.newWebView( display.contentCenterX, display.contentCenterY, display.contentWidth, display.contentHeight )
htmlContent:request( "links.html", system.ResourceDirectory )
htmlContent:addEventListener( "urlRequest", webListener )
这是带有应用程序中显示的链接的html内容。
links.html
<html>
<head>
</head>
<body>
Go to <a href="https://google.com/">Google</a>.
</body>
</html>
答案 0 :(得分:1)
尝试(测试)
links.html
<html>
<head></head>
<body>
Go to <a href="#corona://https://google.com/>Google</a>.
</body>
</html>
main.lua
local function webListener( event )
if event.url then
local pattern = 'corona://'
local position = string.find( event.url, pattern ) or 0
local len = position == 0 and 0 or string.len( pattern )
local url = string.sub( event.url, position + len )
if len > 0 then -- ensures that the app doesn't try to open links.html in the default browser window
system.openURL( url )
--print( url )
end
end
end
local htmlContent = native.newWebView( display.contentCenterX, display.contentCenterY, display.contentWidth, display.contentHeight-2*100 )
htmlContent:request( "links.html", system.ResourceDirectory )
htmlContent:addEventListener( "urlRequest", webListener )