我想知道如何將通過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
謝謝
正如我在原來的帖子中所述,我已經試過這個。但是,它與Android的WebView對象一起使用時不起作用,該對象將網頁的URL作爲輸入。 – mattbrain