0

我想知道如何将通过AWS API网关访问的网页加载到Android WebView。该API由IAM用户角色/政策的保护,所以只是简单地调用下面是不够的如何通过AWS API网关在Android webview中加载网关

WebView.loadUrl("https:ewfwfbuet234.execute-api.us-west-2.amazonaws.com/STAGE/mypage"); 

将被建议答案显然是为了实现自己的AWS签名4头,像

String awsSig4Header = myHeaderConstructor(credentials, otherParams); 
myWebView.loadUrl("https:ewfwfbuet234.execute-api.us-west-2.amazonaws.com/STAGE/mypage", awsSig4Header); 

但是,我想避免实现我自己的签名构造函数在亚马逊更新他们的Sig4方法(也许实现Sig5或什么)的机会 我正在建立的应用程序必须很容易更新(例如只是更新库,不需要代码模块,然后重新构建APK)

我也通过API Gateway控制台的SDK导出器生成了lib。 我使用了以下链接中描述的以下设置来进行方法和积分响应。 但生成的函数返回void。

https://kennbrodhagen.net/2016/01/31/how-to-return-html-from-aws-api-gateway-lambda/

我检查了亚马逊的Android SDK GitHub的页面,并且有人已经请求此特定功能。自七月没有更新2016年

https://github.com/aws/aws-sdk-android/issues/29

最后,网页我加载使用JavaScript,使网页流量也通过setJavaScriptEnabled(真)

的解决方案,我启动Javascript寻找是

o如何配置API网关的方法和集成响应,以便结果可以加载到WebView,也许捕捉响应身体?

o备择到web视图,如果web视图不能处理它

○Java库,可以生成报头和也活性(因此,如果亚马逊并改变SIG4,更新所述应用程序仍然是容易的)

Ø生成一个“预签署网址”(对于API网关,如果它甚至有可能),因此我没有打电话WebView.loadUrl

其他信息时,包括SIG4头:

○网页使用javascript

○网页我试图访问是一样的东西

https:ewfwfbuet234.execute-api.us-west-2.amazonaws.com/STAGE/mypage 

谢谢

回答

0

Presigned URL对于S3没有API网关。幸运的是,您可以为您的API生成Android或JavaScript SDK并使用Cognito进行身份验证。

+0

正如我在原来的帖子中所述,我已经试过这个。但是,它与Android的WebView对象一起使用时不起作用,该对象将网页的URL作为输入。 – mattbrain