using UIKit; using Foundation; using Shared.IO; using CoreFoundation; using System.Collections.Generic; using System; using System.Runtime; namespace Shared { /// /// Button 按键 /// public class MyEchartsView : View { JsonData jsonData = new JsonData { }; UIWebView uIWebView; public MyEchartsView() { uIWebView = new UIWebView { }; uiView = uIWebView; uIWebView.ScrollView.Bounces = false; uIWebView.ScrollView.ScrollEnabled = false; var filePath = NSBundle.MainBundle.PathForResource("echarts", "html"); var url = new NSUrl(filePath); var request = new NSUrlRequest(url); uIWebView.LoadRequest(request); uIWebView.LoadFinished += (sender, e) => { uIWebView.EvaluateJavascript($"loadEcharts({Newtonsoft.Json.JsonConvert.SerializeObject(jsonData)},'undefined')"); }; } public void Show(string title, string[] xArray, object[] yArray) { jsonData.Title = title; jsonData.XArray = xArray; jsonData.YArray = yArray; uIWebView.EvaluateJavascript($"loadEcharts({Newtonsoft.Json.JsonConvert.SerializeObject(jsonData)},'undefined')"); } ///Users/hdl/MyFiles/My/Xamarin/MyApp/Library/Shared.IOS/UI/MyEchartsView.cs(30,30): Error CS0012: The type 'Attribute' is defined in an assembly that is not referenced.You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. (CS0012) (Shared.IOS) ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS) ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS) ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS) public string Unit { get { return jsonData.Unit; } set { jsonData.Unit = value; } } [Serializable] class JsonData { /// /// 标题内容 /// /// The title. [Newtonsoft.Json.JsonIgnore] public string Title { get { return title["text"].ToString(); } set { title["text"] = value; } } [Newtonsoft.Json.JsonProperty] readonly Dictionary title = new Dictionary { ["text"] = "" }; [Newtonsoft.Json.JsonProperty] readonly Dictionary tooltip = new Dictionary { ["trigger"] = "axis" }; /// /// X轴坐标点 /// /// The XA rray. [Newtonsoft.Json.JsonIgnore] public string[] XArray { get { return (xAxis[0] as Dictionary)["data"] as string[]; } set { (xAxis[0] as Dictionary)["data"] = value; } } [Newtonsoft.Json.JsonProperty] readonly List xAxis = new List { new Dictionary { ["type"] = "category", ["boundaryGap"] = false, ["data"] = new object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } } }; [Newtonsoft.Json.JsonIgnore] public string Unit { get { return ((yAxis[0] as Dictionary)["axisLabel"] as Dictionary)["formatter"].ToString().Substring("{value}".Length); } set { ((yAxis[0] as Dictionary)["axisLabel"] as Dictionary)["formatter"] = "{value}" + value; } } [Newtonsoft.Json.JsonProperty] readonly List yAxis = new List { new Dictionary { ["type"] = "value", ["axisLabel"] = new Dictionary { ["formatter"] = "{value}" } } }; /// /// Y轴坐标点 /// /// The YA rray. [Newtonsoft.Json.JsonIgnore] public object[] YArray { get { return (series[0] as Dictionary)["data"] as object[]; } set { (series[0] as Dictionary)["data"] = value; } } [Newtonsoft.Json.JsonProperty] readonly List series = new List { new Dictionary { ["name"] = "Value", ["type"] = "line", ["data"] = new object[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, ["markPoint"] = new Dictionary { ["data"] = new List { new Dictionary { ["type"] = "max", ["name"] = "Max" }, new Dictionary { ["type"] = "min", ["name"] = "Min" } } }, ["markLine"] = new Dictionary { ["data"] = new List { new Dictionary { ["type"] = "average", ["name"] = "Average" } } } } }; } } }