我正在爲使用HTML5/JavaScript的WP8開發應用程序。 我收集JavaScript中數組變量的用戶設置,並非常希望保存這些設置以供將來使用。並將其保存在漫遊設置中以更加精確。Windows Phone 8中的應用程序設置,使用javascript
經過一番研究,似乎這是不可能的直接從js。我發現在Windows 8中執行此任務的API調用在WP8下不起作用。因此,只有變通,我可以想出是結構:
1)當我想保存的數據,從JS我做
window.external.notify("LaunchSaveProcess");
將通知發送到瀏覽器。
2)在XAML文件
<phone:WebBrowser ScriptNotify="Catch_Script_Notification" />
從瀏覽器將通知傳遞至c#
3)在C#捕獲通知
private void Catch_Script_Notification(object sender, NotifyEventArgs e)
{ if (e.Value.StartsWith("LaunchSaveProcess")) {
//"important function"
} }
4) 「的重要功能」 調用方法在JavaScript中返回用戶設置數組,然後繼續保存數據使用
var userSettings = Browser.InvokeScript("getSettings()");
var roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
roamingSettings.Values["settings"] = userSettings;
現在幾個問題。 這個模型是正確的,還是有更簡單的方法來做到這一點?您可以在發出通知事件時以某種方式將參數從JavaScript直接傳遞給C#? 我可以直接將數組保存到roamingSettings中嗎,還是需要將它排除並將所有內容分開保存?
爲了澄清usersettings數組是1維數組,我用「鍵」和「值」對推對象。因此,我可以輕鬆地使用 userSettings [i] .key和.value語法訪問循環內的內容。
感謝您提供非常明確的教育答案。我決定把c#端遺忘在一起,只是使用js的隔離存儲。 – Sopuli