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