问题描述
我正在使用ask-sdk-java和SkillServlet开发我的第一手技能。我已经成功实现了自定义技能处理程序并与Alexa通信。
现在,我想在处理程序中运行一些代码,例如使用java.awt.Desktop打开Web浏览器:
public Optional<Response> handle(HandlerInput input){
Desktop.getDesktop().browse(new URI("http://www.google.com"));
String speechText = "Of course";
return input.getResponseBuilder()
.withSpeech(speechText)
.build();
}
我正在将其构建为.war文件并运行到tomcat服务器中。
当调用该意图时,我收到了alexa响应,但是没有打开任何Web浏览器。
有可能实现这一目标吗?
问候,
解决方法
您是否希望浏览器在运行该技能的服务器上或在Echo设备上打开? ASK-SDK是服务器端,您对设备的响应将始终由Alexa语音服务来调解。您不能在客户设备上运行任意Java代码。
您可以在响应中运行HTML和JavaScript,但只能在游戏中使用Alexa Web API,并且只能在支持它的设备上使用。