Таблица DynamoDB
Во-первых, вам нужно будет создать DynamoDB Table
. Для этого вам понадобится минимально иметь таблицу Hash Key
, которая действует как первичный ключ таблицы, вы также можете иметь необязательный Range Key
, который действует как составной первичный ключ таблицы
. boxname
, кажется, хорошо вписывается в таблицу Hash Key
Вы можете сразу же создать DynamoDB Table
только с ключом хэширования, так как все остальные атрибуты не нужно указывать заранее, новые / дополнительные атрибуты могут быть добавлены на лету при создании новых записей
Создать запись
Вы можете использовать API PutItem
Для создания записи в DynamoDB [1122 ]
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
Записи запросов
[1125 ] Вы можете использовать API Query
для запроса записей по хеш-ключу таблицы, а также при желании также ключу диапазона
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference /API_Query.html
Сканирование записей [112 7]
Используйте API Scan
для сканирования записей по любым атрибутам Non Key
, когда вы не можете извлечь записи на основе таблиц Hash Key
и / или Range Key
. Обычно это не так. Рекомендуется создать структуру таблиц, в которой интенсивно используется API-интерфейс сканирования, поскольку он буквально выполняет операцию сканирования. Вместо этого рекомендуется структурировать таблицу, оптимизированную для операций с запросами
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
[ 1139] Получить запись
Вы можете использовать API GetItem
для получения одной записи по хеш-ключу таблицы и, опционально, также по ключу диапазона
https: / /docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
Надеюсь, что приведенная выше информация полезна для начала работы с DynamoDB
Можно сделать это как это:
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
public WebView web_view;
public static TextView textView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
Window.AddFlags(WindowManagerFlags.Fullscreen);
Window.ClearFlags(WindowManagerFlags.ForceNotFullscreen);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.main);
web_view = FindViewById<WebView>(Resource.Id.webView);
textView = FindViewById<TextView>(Resource.Id.textView);
web_view.Settings.JavaScriptEnabled = true;
web_view.SetWebViewClient(new SMOSWebViewClient());
web_view.LoadUrl("https://stns.egyptair.com");
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
public class SMOSWebViewClient : WebViewClient
{
public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request)
{
view.LoadUrl(request.Url.ToString());
return false;
}
public override void OnPageFinished(WebView view, string url)
{
view.EvaluateJavascript("document.getElementsByClassName('notf')[0].innerHTML;", new JavascriptResult());
}
}
public class JavascriptResult : Java.Lang.Object, IValueCallback
{
public string Result;
public void OnReceiveValue(Java.Lang.Object result)
{
string json = ((Java.Lang.String)result).ToString();
Result = json;
MainActivity.textView.Text = Result.Replace("\"", string.Empty);
}
}
Используйте addJavascriptInterface ()
, чтобы добавить объект Java в среду Javascript. Пусть ваш Javascript вызовет метод этого объекта Java для предоставления его «возвращаемого значения».
Вот хак, как это сделать:
Добавьте этого клиента в свой WebView:
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d("LogTag", message);
result.confirm();
return true;
}
}
Теперь в вашем вызове javascript выполните:
webView.loadUrl("javascript:alert(functionThatReturnsSomething)");
Теперь в вызове onJsAlert «сообщение» будет содержать возвращаемое значение.