我有一个CodeName One应用程序,我在其中使用BrowserComponent加载HTML页面。使用window.open()
单击按钮,此HTML页面(HTMLPage1)进一步打开另一个HTML页面(HTMLPage2)。这在应用程序中可以正常工作。此HTMLPage2具有一个“关闭”按钮,单击此按钮时,应关闭HTMLPage2,并且控件应返回到HTMLPage1。但是,这不能按预期方式工作。单击“关闭”按钮后,应用程序中没有任何反应,并且HTMLPage2仍显示在应用程序中。我试过使用window.close()和self.close(),但它们都不起作用。
我找到了以下有关搜索的文章 Android Webview: Scripts may close only the windows that were opened by it似乎与我面临的问题
此外,我在手机上有一个WebView测试应用程序(可以在PlayStore上找到-搜索com.snc.test.WebView Test
),可以修改WebView设置并启动其他URL。我使用此应用程序检查了是否可以通过WebView Test应用程序成功调用HTML页面。使用默认设置,我遇到了与上述相同的问题。关闭按钮不起作用。
但是,然后我在应用程序中修改了setSupportMultipleWindows()
属性,并将其设置为true。之后,它可以通过WebView Test应用程序正常工作。在HTMLPage2中单击“关闭”时,该页面已关闭,我可以再次看到HTMLPage1。
因此,我尝试检查如何在CodeName One中设置此属性。我发现BrowserComponent.setProperty("SupportMultipleWindows", "true")
应该可以做同样的事情。当我设置此属性并测试应用程序时,它仍然无法正常工作。
然后我浏览了
的文档
WebSettings.setSupportMultipleWindows
根据本文档,如果设置为true,WebChromeClient.onCreateWindow(WebView, boolean, boolean, Message)
必须由主机应用程序实现。
我找不到通过CodeName One做到这一点的方法。
我要走正确的道路解决这个问题吗?如果没有,请指导我。