На самом деле, в процессе поиска свойства launchedFromShortcut
на github я понял, что оно не используется в Javascript. Поэтому используется только флаг , чтобы сообщить, было ли приложение запущено с ярлыка, и передача его в RNN RNNReactRootViewCreator
кажется ненужной.
Убрано, что необходимость интеграции оказалась довольно простой, нам нужно только добавить launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil;
в didFinishLaunchingWithOptions
и проверить ее значение в continueUserActivity
.
AppDelegate.m
будет выглядеть следующим образом:
#import "AppDelegate.h"
#import
#import
#import
#import
@implementation AppDelegate
BOOL launchedFromShortcut;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
launchedFromShortcut = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] != nil;
[ReactNativeNavigation bootstrap:jsCodeLocation launchOptions:launchOptions];
//
// Regular RNN bootstrap code omitted for brevity sake
//
return YES;
}
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray> *restorableObjects))restorationHandler
{
if (launchedFromShortcut) {
ShortcutsModule.initialUserActivity = userActivity;
launchedFromShortcut = NO;
}
[ShortcutsModule onShortcutReceivedWithUserActivity:userActivity];
return YES;
}
@end
Хорошо, таким образом, я могу иметь преувеличенный это, но я пытался сделать это довольно динамичным. Да, названия списка немного нечетны, но я использовал другой мой пример для создания этого.
protected void Page_Load(object sender, EventArgs e)
{
Bench[] benchList;
FoodIntake[] foodIntakeList;
Panel panelChartHolder;
panelChartHolder = new Panel();
Controls.Add(panelChartHolder);
benchList = Bench.GetAll();
AddNewCharts(benchList, panelChartHolder,
GetBenchXValue, GetBenchYValue);
foodIntakeList = FoodIntake.GetAll();
AddNewCharts(foodIntakeList, panelChartHolder,
GetFoodIntakeXValue, GetFoodIntakeYValue);
}
Хорошо, таким образом, эта первая часть проста. Создайте панель для содержания диаграмм, Вы добавляете, получаете списки, которые Вы хотите представленный диаграммами (Для этого примера, они, оказывается, работают с Linq к Sql), и назовите метод для составления таблиц.
private void AddNewCharts<T>(T[] listToAdd, Panel panelToAddTo,
Func<T, DateTime> xMethod, Func<T, Int32> yMethod)
{
ChartArea mainArea;
Chart mainChart;
Series mainSeries;
mainChart = new Chart();
mainSeries = new Series("MainSeries");
for (Int32 loopCounter = 0; loopCounter < listToAdd.Length; loopCounter++)
{
mainSeries.Points.AddXY(xMethod(listToAdd[loopCounter]),
yMethod(listToAdd[loopCounter]));
}
mainChart.Series.Add(mainSeries);
mainArea = new ChartArea("MainArea");
mainChart.ChartAreas.Add(mainArea);
panelToAddTo.Controls.Add(mainChart);
}
Как Вы видите, я просто составил новую таблицу, добавил ряд к нему и добавил ChartArea к нему. Следующая часть является в значительной степени просто цикличным выполнением через набор и добавляющий каждый объект в нем к самому списку. Это использует переданный в методах делегата (Func) для получения значений X и Y.
Последняя часть содержит эти четыре метода, ответственные за получение значений X и Y из двух списков. В основном я сделал это, чтобы позволить методу создания диаграммы быть дженериком как возможным. Могло бы быть излишество.
private DateTime GetBenchXValue(Bench currentBench)
{
return currentBench.DateLifted;
}
private Int32 GetBenchYValue(Bench currentBench)
{
return currentBench.BenchAmount;
}
private DateTime GetFoodIntakeXValue(FoodIntake currentIntake)
{
return currentIntake.DateEaten;
}
private Int32 GetFoodIntakeYValue(FoodIntake currentIntake)
{
return currentIntake.Calories;
}
И поэтому при выполнении этого Вы получите два графика рядом. Обратите внимание, они будут очень просты, поскольку существует миллион различных свойств, которые могут быть установлены улучшить взгляд. Надежда это - то, что Вы просили.
using System;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
Я обновил образцы диаграмм MS для .NET 4.0 и добавил два дополнительных проекта - ChartsWithMVC и ChartsWithoutWebForms. Вы можете найти мой пример кода полезным, так как у меня очень простая реализация системы динамических диаграмм с использованием элемента управления диаграммой asp.net:
http://develocity.blogspot.com/2010/04/aspnet-chart-controls -without-web-forms.html
Надеюсь, это поможет.