diff --git a/App.windows.js b/App.windows.js new file mode 100644 index 0000000..202b182 --- /dev/null +++ b/App.windows.js @@ -0,0 +1,355 @@ +import React, { Component } from "react"; +import { + StyleSheet, + Text, + View, + ScrollView, + Image, + Switch, + TextInput, + Picker, + Slider, + WebView, +} from "react-native"; +import omit from "lodash/omit"; +import { takeSnapshot } from "react-native-view-shot"; +// import { Surface } from "gl-react-native"; +// import GL from "gl-react"; +// import MapView from "react-native-maps"; +import Video from "react-native-video"; +import Btn from "./Btn"; + +const catsSource = { + uri: "https://i.imgur.com/5EOyTDQ.jpg", +}; + +/*const shaders = GL.Shaders.create({ + helloGL: { + frag: ` +precision highp float; +varying vec2 uv; +uniform float blue; +void main () { + gl_FragColor = vec4(uv.x, uv.y, blue, 1.0); +}` + } +}); + +const HelloGL = GL.createComponent( + ({ blue }) => + , + { displayName: "HelloGL" });*/ + +export default class App extends Component { + state = { + previewSource: catsSource, + error: null, + res: null, + value: { + format: "png", + quality: 0.9, + result: "file", + snapshotContentContainer: false, + }, + }; + + snapshot = refname => () => + takeSnapshot(this.refs[refname], this.state.value) + .then(res => + this.state.value.result !== "file" + ? res + : new Promise((success, failure) => + // just a test to ensure res can be used in Image.getSize + Image.getSize( + res, + (width, height) => (console.log(res,width,height), success(res)), + failure))) + .then(res => this.setState({ + error: null, + res, + previewSource: { uri: + this.state.value.result === "base64" + ? "data:image/"+this.state.value.format+";base64,"+res + : res } + })) + .catch(error => (console.warn(error), this.setState({ error, res: null, previewSource: null }))); + + render() { + const { value, previewSource, error, res } = this.state; + const { format, quality, width, height, result, snapshotContentContainer } = value; + return ( + + + + 😃 ViewShot Example 😜 + + + + This is a{" "} + + + react-native-view-shot + + + {" "}showcase. + + + + { error + ? + {""+(error.message || error)} + + : } + + + {res ? res.slice(0, 200) : ""} + + + + + this.setState({ previewSource: catsSource })} /> + + + + + + + + + + + + Format + this.setState({ value: { ...value, format } })}> + + + + + + + + Quality + this.setState({ value: { ...value, quality } })} + /> + {(quality*100).toFixed(0)}% + + + Size + this.setState({ + value: omit({ + ...value, + width: 300, + height: 300, + }, checked ? [] : ["width","height"]) + })} + /> + { width!==undefined ? !isNaN(txt) && this.setState({ + value: { ...value, width: parseInt(txt, 10) } + })} + /> : (auto) } + x + { height!==undefined ? !isNaN(txt) && this.setState({ + value: { ...value, height: parseInt(txt, 10) } + })} + /> : (auto) } + + + Result + this.setState({ value: { ...value, result } })}> + + + + + + + + snapshotContentContainer + this.setState({ + value: { ...value, snapshotContentContainer } + })} + /> + + + + + Experimental Stuff + {/* + + + */} + + + + + + ); + } +} + +const styles = StyleSheet.create({ + root: { + flex: 1, + backgroundColor: "#f6f6f6", + }, + container: { + paddingVertical: 20, + backgroundColor: "#f6f6f6", + }, + title: { + fontSize: 20, + textAlign: "center", + margin: 10, + }, + experimental: { + padding: 10, + flexDirection: "column", + alignItems: "center", + }, + experimentalTitle: { + fontSize: 16, + margin: 10, + }, + p1: { + marginBottom: 10, + flexDirection: "row", + flexWrap: "wrap", + justifyContent: "center", + alignItems: "center", + }, + text: { + color: "#333", + }, + code: { + fontWeight: "bold", + color: "#000", + }, + field: { + flexDirection: "row", + alignItems: "center", + paddingVertical: 4, + paddingHorizontal: 10, + }, + label: { + minWidth: 80, + fontStyle: "italic", + color: "#888", + }, + switch: { + marginRight: 50, + }, + input: { + flex: 1, + marginHorizontal: 5, + }, + inputText: { + flex: 1, + marginHorizontal: 5, + color: "red", + textAlign: "center", + }, + preview: { + flexDirection: "row", + alignItems: "center", + justifyContent: "space-around", + }, + previewImage: { + width: 375, + height: 300, + }, + previewUriText: { + fontSize: 12, + fontStyle: "italic", + color: "#666", + textAlign: "center", + padding: 10, + paddingBottom: 0, + }, + previewError: { + width: 375, + height: 300, + paddingTop: 20, + textAlign: "center", + fontSize: 20, + fontWeight: "bold", + color: "#fff", + backgroundColor: "#c00", + }, + header: { + backgroundColor: "#f6f6f6", + borderColor: "#000", + borderWidth: 1, + paddingBottom: 20, + }, + form: { + backgroundColor: "#fff", + }, + btns: { + flexDirection: "row", + flexWrap: "wrap", + alignItems: "center", + justifyContent: "center", + paddingVertical: 10, + margin: 4, + } +}); diff --git a/index.windows.js b/index.windows.js new file mode 100644 index 0000000..07a5ab6 --- /dev/null +++ b/index.windows.js @@ -0,0 +1,4 @@ +//@flow +import { AppRegistry } from "react-native"; +import App from "./App"; +AppRegistry.registerComponent("ViewShotExample", () => App); diff --git a/package.json b/package.json index 75ad58b..34a54bc 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,10 @@ "lodash": "4.17.4", "react": "15.4.2", "react-native": "0.41.2", + "react-native-windows": "^0.43.0-rc.0" + }, + "devDependencies": { + "rnpm-plugin-windows": "^0.2.4", "react-native-maps": "https://github.com/airbnb/react-native-maps/archive/v0.13.0.tar.gz", "react-native-video": "^1.0.0", "react-native-view-shot": "*" diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..33d3fde --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,89 @@ +*AppPackages* +*BundleArtifacts* +*ReactAssets* + +#OS junk files +[Tt]humbs.db +*.DS_Store + +#Visual Studio files +*.[Oo]bj +*.user +*.aps +*.pch +*.vspscc +*.vssscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.[Cc]ache +*.ilk +*.log +*.lib +*.sbr +*.sdf +*.opensdf +*.opendb +*.unsuccessfulbuild +ipch/ +[Oo]bj/ +[Bb]in +[Dd]ebug*/ +[Rr]elease*/ +Ankh.NoLoad + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +#MonoDevelop +*.pidb +*.userprefs + +#Tooling +_ReSharper*/ +*.resharper +[Tt]est[Rr]esult* +*.sass-cache + +#Project files +[Bb]uild/ + +#Subversion files +.svn + +# Office Temp Files +~$* + +# vim Temp Files +*~ + +#NuGet +packages/ +*.nupkg + +#ncrunch +*ncrunch* +*crunch*.local.xml + +# visual studio database projects +*.dbmdl + +#Test files +*.testsettings + +#Other files +*.DotSettings +.vs/ +*project.lock.json diff --git a/windows/ViewShotExample.Net46/App.config b/windows/ViewShotExample.Net46/App.config new file mode 100644 index 0000000..8324aa6 --- /dev/null +++ b/windows/ViewShotExample.Net46/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/windows/ViewShotExample.Net46/App.xaml b/windows/ViewShotExample.Net46/App.xaml new file mode 100644 index 0000000..9844ad0 --- /dev/null +++ b/windows/ViewShotExample.Net46/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/windows/ViewShotExample.Net46/App.xaml.cs b/windows/ViewShotExample.Net46/App.xaml.cs new file mode 100644 index 0000000..3253bbb --- /dev/null +++ b/windows/ViewShotExample.Net46/App.xaml.cs @@ -0,0 +1,101 @@ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Navigation; + +namespace ViewShotExample.Net46 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + public partial class App : Application + { + private readonly AppReactPage _reactPage = new AppReactPage(); + + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + } + + /// + /// Override method fired prior to the Startup event when the Run method of the Application object is called... + /// + /// + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + OnCreate(e.Args); + } + + /// + /// Called whenever the app is opened to initialized... + /// + /// + private void OnCreate(string[] arguments) + { + var shellWindow = Application.Current.MainWindow; + + if (shellWindow == null) + { + shellWindow = new Window + { + ShowActivated = true, + ShowInTaskbar = true, + Title = "ViewShotExample.Net46", + Height = 768, + Width = 1024, + WindowStartupLocation = WindowStartupLocation.CenterScreen + }; + + Application.Current.MainWindow = shellWindow; + } + + //Show Window if it is not already active... + if (!shellWindow.IsLoaded) + { + shellWindow.Show(); + } + + var rootFrame = shellWindow.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + _reactPage.OnCreate(arguments); + + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + // Place the frame in the current Window + shellWindow.Content = rootFrame; + } + + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Content = _reactPage; + } + + // Ensure the current window is active + shellWindow.Activate(); + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + private void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page..."); + } + } +} diff --git a/windows/ViewShotExample.Net46/AppReactPage.cs b/windows/ViewShotExample.Net46/AppReactPage.cs new file mode 100644 index 0000000..e4f2f3c --- /dev/null +++ b/windows/ViewShotExample.Net46/AppReactPage.cs @@ -0,0 +1,32 @@ +using ReactNative; +using ReactNative.Bridge; +using ReactNative.Modules.Core; +using ReactNative.Shell; +using ReactNative.UIManager; +using System; +using System.Collections.Generic; +using ReactNativeVideo; +using RNViewShot; + +namespace ViewShotExample.Net46 +{ + internal class AppReactPage : ReactPage + { + public override string MainComponentName => "ViewShotExample"; + + public override List Packages => new List + { + new MainReactPackage(), + new RNViewShotPackage(), + new ReactVideoPackage(), + }; + + public override bool UseDeveloperSupport + { + get + { + return true; + } + } + } +} diff --git a/windows/ViewShotExample.Net46/Properties/AssemblyInfo.cs b/windows/ViewShotExample.Net46/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..42e2e6e --- /dev/null +++ b/windows/ViewShotExample.Net46/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ViewShotExample.Net46")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ViewShotExample.Net46")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/windows/ViewShotExample.Net46/Properties/Resources.Designer.cs b/windows/ViewShotExample.Net46/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d2233a9 --- /dev/null +++ b/windows/ViewShotExample.Net46/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ViewShotExample.Net46.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ViewShotExample.Net46.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/windows/ViewShotExample.Net46/Properties/Resources.resx b/windows/ViewShotExample.Net46/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/windows/ViewShotExample.Net46/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/windows/ViewShotExample.Net46/Properties/Settings.Designer.cs b/windows/ViewShotExample.Net46/Properties/Settings.Designer.cs new file mode 100644 index 0000000..a06143a --- /dev/null +++ b/windows/ViewShotExample.Net46/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ViewShotExample.Net46.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/windows/ViewShotExample.Net46/Properties/Settings.settings b/windows/ViewShotExample.Net46/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/windows/ViewShotExample.Net46/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/windows/ViewShotExample.Net46/ViewShotExample.Net46.csproj b/windows/ViewShotExample.Net46/ViewShotExample.Net46.csproj new file mode 100644 index 0000000..560bae5 --- /dev/null +++ b/windows/ViewShotExample.Net46/ViewShotExample.Net46.csproj @@ -0,0 +1,130 @@ + + + + + Debug + AnyCPU + {2A3E5645-CC81-4577-A1AC-397A09B76546} + WinExe + Properties + ViewShotExample.Net46 + ViewShotExample.Net46 + v4.6 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + true + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + {1dd45d00-ddf4-43b4-ab28-f98e6dc325b5} + RNViewShot.Net46 + + + {22cbff9c-fe36-43e8-a246-266c7635e662} + ReactNative.Net46 + + + + + \ No newline at end of file diff --git a/windows/ViewShotExample.sln b/windows/ViewShotExample.sln new file mode 100644 index 0000000..06fb56c --- /dev/null +++ b/windows/ViewShotExample.sln @@ -0,0 +1,209 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ViewShotExample", "ViewShotExample\ViewShotExample.csproj", "{385046CD-7621-4286-9E49-4CA26B4A9C23}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ChakraBridge", "..\node_modules\react-native-windows\ReactWindows\ChakraBridge\ChakraBridge.vcxproj", "{4B72C796-16D5-4E3A-81C0-3E36F531E578}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RNViewShot", "..\node_modules\react-native-view-shot\windows\RNViewShot\RNViewShot.csproj", "{391A35D0-FEBA-11E6-9171-BD5177E581B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactNative", "..\node_modules\react-native-windows\ReactWindows\ReactNative\ReactNative.csproj", "{C7673AD5-E3AA-468C-A5FD-FA38154E205C}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ReactNative.Shared", "..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.shproj", "{EEA8B852-4D07-48E1-8294-A21AB5909FE5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactNativeVideo", "..\node_modules\react-native-video\windows\ReactNativeVideo\ReactNativeVideo.csproj", "{E8F5F57F-757E-4237-AD23-F7A8755427CD}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + ..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.projitems*{c7673ad5-e3aa-468c-a5fd-fa38154e205c}*SharedItemsImports = 4 + ..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.projitems*{eea8b852-4d07-48e1-8294-a21ab5909fe5}*SharedItemsImports = 13 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + DebugBundle|ARM = DebugBundle|ARM + DebugBundle|x64 = DebugBundle|x64 + DebugBundle|x86 = DebugBundle|x86 + Development|ARM = Development|ARM + Development|x64 = Development|x64 + Development|x86 = Development|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + ReleaseBundle|ARM = ReleaseBundle|ARM + ReleaseBundle|x64 = ReleaseBundle|x64 + ReleaseBundle|x86 = ReleaseBundle|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|ARM.ActiveCfg = Debug|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|ARM.Build.0 = Debug|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|ARM.Deploy.0 = Debug|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x64.ActiveCfg = Debug|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x64.Build.0 = Debug|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x64.Deploy.0 = Debug|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x86.ActiveCfg = Debug|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x86.Build.0 = Debug|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Debug|x86.Deploy.0 = Debug|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|ARM.ActiveCfg = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|ARM.Build.0 = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|ARM.Deploy.0 = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x64.ActiveCfg = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x64.Build.0 = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x64.Deploy.0 = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x86.ActiveCfg = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x86.Build.0 = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.DebugBundle|x86.Deploy.0 = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|ARM.ActiveCfg = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|ARM.Build.0 = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|ARM.Deploy.0 = DebugBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x64.ActiveCfg = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x64.Build.0 = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x64.Deploy.0 = DebugBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x86.ActiveCfg = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x86.Build.0 = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Development|x86.Deploy.0 = DebugBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|ARM.ActiveCfg = Release|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|ARM.Build.0 = Release|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|ARM.Deploy.0 = Release|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x64.ActiveCfg = Release|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x64.Build.0 = Release|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x64.Deploy.0 = Release|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x86.ActiveCfg = Release|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x86.Build.0 = Release|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.Release|x86.Deploy.0 = Release|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|ARM.ActiveCfg = ReleaseBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|ARM.Build.0 = ReleaseBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|ARM.Deploy.0 = ReleaseBundle|ARM + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x64.ActiveCfg = ReleaseBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x64.Build.0 = ReleaseBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x64.Deploy.0 = ReleaseBundle|x64 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x86.ActiveCfg = ReleaseBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x86.Build.0 = ReleaseBundle|x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23}.ReleaseBundle|x86.Deploy.0 = ReleaseBundle|x86 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|ARM.ActiveCfg = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|ARM.Build.0 = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x64.ActiveCfg = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x64.Build.0 = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x86.ActiveCfg = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x86.Build.0 = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|ARM.ActiveCfg = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|ARM.Build.0 = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x64.ActiveCfg = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x64.Build.0 = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x86.ActiveCfg = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x86.Build.0 = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|ARM.ActiveCfg = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|ARM.Build.0 = Debug|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x64.ActiveCfg = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x64.Build.0 = Debug|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x86.ActiveCfg = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x86.Build.0 = Debug|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|ARM.ActiveCfg = Release|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|ARM.Build.0 = Release|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x64.ActiveCfg = Release|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x64.Build.0 = Release|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x86.ActiveCfg = Release|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x86.Build.0 = Release|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|ARM.ActiveCfg = Release|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|ARM.Build.0 = Release|ARM + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x64.ActiveCfg = Release|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x64.Build.0 = Release|x64 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x86.ActiveCfg = Release|Win32 + {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x86.Build.0 = Release|Win32 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|ARM.ActiveCfg = Debug|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|ARM.Build.0 = Debug|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x64.ActiveCfg = Debug|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x64.Build.0 = Debug|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x86.ActiveCfg = Debug|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x86.Build.0 = Debug|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|ARM.ActiveCfg = Debug|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|ARM.Build.0 = Debug|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x64.ActiveCfg = Debug|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x64.Build.0 = Debug|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x86.ActiveCfg = Debug|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x86.Build.0 = Debug|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|ARM.ActiveCfg = Development|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|ARM.Build.0 = Development|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x64.ActiveCfg = Development|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x64.Build.0 = Development|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x86.ActiveCfg = Development|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x86.Build.0 = Development|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|ARM.ActiveCfg = Release|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|ARM.Build.0 = Release|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x64.ActiveCfg = Release|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x64.Build.0 = Release|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x86.ActiveCfg = Release|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x86.Build.0 = Release|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|ARM.ActiveCfg = Release|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|ARM.Build.0 = Release|ARM + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x64.ActiveCfg = Release|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x64.Build.0 = Release|x64 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x86.ActiveCfg = Release|x86 + {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x86.Build.0 = Release|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|ARM.ActiveCfg = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|ARM.Build.0 = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x64.ActiveCfg = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x64.Build.0 = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x86.ActiveCfg = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x86.Build.0 = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|ARM.ActiveCfg = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|ARM.Build.0 = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x64.ActiveCfg = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x64.Build.0 = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x86.ActiveCfg = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x86.Build.0 = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|ARM.ActiveCfg = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|ARM.Build.0 = Debug|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x64.ActiveCfg = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x64.Build.0 = Debug|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x86.ActiveCfg = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x86.Build.0 = Debug|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|ARM.ActiveCfg = Release|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|ARM.Build.0 = Release|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x64.ActiveCfg = Release|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x64.Build.0 = Release|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x86.ActiveCfg = Release|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x86.Build.0 = Release|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|ARM.ActiveCfg = Release|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|ARM.Build.0 = Release|ARM + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x64.ActiveCfg = Release|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x64.Build.0 = Release|x64 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x86.ActiveCfg = Release|x86 + {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x86.Build.0 = Release|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|ARM.ActiveCfg = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|ARM.Build.0 = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|x64.ActiveCfg = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|x64.Build.0 = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|x86.ActiveCfg = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Debug|x86.Build.0 = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|ARM.ActiveCfg = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|ARM.Build.0 = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|x64.ActiveCfg = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|x64.Build.0 = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|x86.ActiveCfg = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.DebugBundle|x86.Build.0 = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|ARM.ActiveCfg = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|ARM.Build.0 = Debug|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|x64.ActiveCfg = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|x64.Build.0 = Debug|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|x86.ActiveCfg = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Development|x86.Build.0 = Debug|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|ARM.ActiveCfg = Release|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|ARM.Build.0 = Release|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|x64.ActiveCfg = Release|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|x64.Build.0 = Release|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|x86.ActiveCfg = Release|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.Release|x86.Build.0 = Release|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|ARM.ActiveCfg = Release|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|ARM.Build.0 = Release|ARM + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|x64.ActiveCfg = Release|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|x64.Build.0 = Release|x64 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|x86.ActiveCfg = Release|x86 + {E8F5F57F-757E-4237-AD23-F7A8755427CD}.ReleaseBundle|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/windows/ViewShotExample/App.xaml b/windows/ViewShotExample/App.xaml new file mode 100644 index 0000000..712ea5d --- /dev/null +++ b/windows/ViewShotExample/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/windows/ViewShotExample/App.xaml.cs b/windows/ViewShotExample/App.xaml.cs new file mode 100644 index 0000000..192881d --- /dev/null +++ b/windows/ViewShotExample/App.xaml.cs @@ -0,0 +1,147 @@ +using ReactNative; +using ReactNative.Modules.Launch; +using System; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; + +namespace ViewShotExample +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + private readonly ReactPage _reactPage; + + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + this.Resuming += OnResuming; + + _reactPage = new MainPage(); + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + base.OnLaunched(e); + OnCreate(e.Arguments); + } + + /// + /// Invoked when the application is activated. + /// + /// The activated event arguments. + protected override void OnActivated(IActivatedEventArgs args) + { + base.OnActivated(args); + + switch (args.Kind) + { + case ActivationKind.Protocol: + case ActivationKind.ProtocolForResults: + var protocolArgs = (IProtocolActivatedEventArgs)args; + LauncherModule.SetActivatedUrl(protocolArgs.Uri.AbsoluteUri); + break; + } + + if (args.PreviousExecutionState != ApplicationExecutionState.Running && + args.PreviousExecutionState != ApplicationExecutionState.Suspended) + { + OnCreate(null); + } + } + + /// + /// Called whenever the app is opened to initia + /// + /// + private void OnCreate(string arguments) + { + _reactPage.OnResume(Exit); + +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } + + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; +#endif + + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + _reactPage.OnCreate(arguments); + + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Content = _reactPage; + } + + // Ensure the current window is active + Window.Current.Activate(); + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + private void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + _reactPage.OnSuspend(); + } + + /// + /// Invoked when application execution is being resumed. + /// + /// The source of the resume request. + /// Details about the resume request. + private void OnResuming(object sender, object e) + { + _reactPage.OnResume(Exit); + } + } +} diff --git a/windows/ViewShotExample/Assets/LockScreenLogo.scale-200.png b/windows/ViewShotExample/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000..735f57a Binary files /dev/null and b/windows/ViewShotExample/Assets/LockScreenLogo.scale-200.png differ diff --git a/windows/ViewShotExample/Assets/SplashScreen.scale-200.png b/windows/ViewShotExample/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000..023e7f1 Binary files /dev/null and b/windows/ViewShotExample/Assets/SplashScreen.scale-200.png differ diff --git a/windows/ViewShotExample/Assets/Square150x150Logo.scale-200.png b/windows/ViewShotExample/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..af49fec Binary files /dev/null and b/windows/ViewShotExample/Assets/Square150x150Logo.scale-200.png differ diff --git a/windows/ViewShotExample/Assets/Square44x44Logo.scale-200.png b/windows/ViewShotExample/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..ce342a2 Binary files /dev/null and b/windows/ViewShotExample/Assets/Square44x44Logo.scale-200.png differ diff --git a/windows/ViewShotExample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/windows/ViewShotExample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000..f6c02ce Binary files /dev/null and b/windows/ViewShotExample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/windows/ViewShotExample/Assets/StoreLogo.png b/windows/ViewShotExample/Assets/StoreLogo.png new file mode 100644 index 0000000..7385b56 Binary files /dev/null and b/windows/ViewShotExample/Assets/StoreLogo.png differ diff --git a/windows/ViewShotExample/Assets/Wide310x150Logo.scale-200.png b/windows/ViewShotExample/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..288995b Binary files /dev/null and b/windows/ViewShotExample/Assets/Wide310x150Logo.scale-200.png differ diff --git a/windows/ViewShotExample/MainPage.cs b/windows/ViewShotExample/MainPage.cs new file mode 100644 index 0000000..ef6dbbf --- /dev/null +++ b/windows/ViewShotExample/MainPage.cs @@ -0,0 +1,56 @@ +using ReactNative; +using ReactNative.Modules.Core; +using ReactNative.Shell; +using RNViewShot; +using System.Collections.Generic; +using ReactNativeVideo; + +namespace ViewShotExample +{ + class MainPage : ReactPage + { + public override string MainComponentName + { + get + { + return "ViewShotExample"; + } + } + +#if BUNDLE + public override string JavaScriptBundleFile + { + get + { + return "ms-appx:///ReactAssets/index.windows.bundle"; + } + } +#endif + + public override List Packages + { + get + { + return new List + { + new MainReactPackage(), + new RNViewShotPackage(), + new ReactVideoPackage(), + }; + } + } + + public override bool UseDeveloperSupport + { + get + { +#if !BUNDLE || DEBUG + return true; +#else + return false; +#endif + } + } + } + +} diff --git a/windows/ViewShotExample/Package.appxmanifest b/windows/ViewShotExample/Package.appxmanifest new file mode 100644 index 0000000..f45f151 --- /dev/null +++ b/windows/ViewShotExample/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + ViewShotExample + React Native for UWP + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/windows/ViewShotExample/Properties/AssemblyInfo.cs b/windows/ViewShotExample/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c523b33 --- /dev/null +++ b/windows/ViewShotExample/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ViewShotExample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ViewShotExample")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/windows/ViewShotExample/Properties/Default.rd.xml b/windows/ViewShotExample/Properties/Default.rd.xml new file mode 100644 index 0000000..64fc7e4 --- /dev/null +++ b/windows/ViewShotExample/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/windows/ViewShotExample/ViewShotExample.csproj b/windows/ViewShotExample/ViewShotExample.csproj new file mode 100644 index 0000000..34ae494 --- /dev/null +++ b/windows/ViewShotExample/ViewShotExample.csproj @@ -0,0 +1,234 @@ + + + + + Debug + x86 + {385046CD-7621-4286-9E49-4CA26B4A9C23} + AppContainerExe + Properties + ViewShotExample + ViewShotExample + en-US + UAP + 10.0.10586.0 + 10.0.10240.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + ViewShotExample_TemporaryKey.pfx + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + true + bin\x86\DebugBundle\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + ;2008 + true + full + x86 + false + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + bin\x86\ReleaseBundle\ + TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + true + ;2008 + true + pdbonly + x86 + false + prompt + MinimumRecommendedRules.ruleset + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + true + bin\ARM\DebugBundle\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + ;2008 + true + full + ARM + false + prompt + MinimumRecommendedRules.ruleset + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + bin\ARM\ReleaseBundle\ + TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + true + ;2008 + true + pdbonly + ARM + false + prompt + MinimumRecommendedRules.ruleset + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + true + bin\x64\DebugBundle\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + ;2008 + true + full + x64 + false + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + bin\x64\ReleaseBundle\ + TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE + true + ;2008 + true + pdbonly + x64 + false + prompt + MinimumRecommendedRules.ruleset + true + true + + + + + + + + App.xaml + + + + + + + Designer + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + + + {e8f5f57f-757e-4237-ad23-f7a8755427cd} + ReactNativeVideo + + + {391A35D0-FEBA-11E6-9171-BD5177E581B7} + RNViewShot + + + {c7673ad5-e3aa-468c-a5fd-fa38154e205c} + ReactNative + + + + + PreserveNewest + + + + 14.0 + + + + \ No newline at end of file diff --git a/windows/ViewShotExample/ViewShotExample_TemporaryKey.pfx b/windows/ViewShotExample/ViewShotExample_TemporaryKey.pfx new file mode 100644 index 0000000..08328fc Binary files /dev/null and b/windows/ViewShotExample/ViewShotExample_TemporaryKey.pfx differ diff --git a/windows/ViewShotExample/project.json b/windows/ViewShotExample/project.json new file mode 100644 index 0000000..4481792 --- /dev/null +++ b/windows/ViewShotExample/project.json @@ -0,0 +1,17 @@ +{ + "dependencies": { + "Facebook.Yoga": "1.1.0.23-pre", + "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2" + }, + "frameworks": { + "uap10.0": {} + }, + "runtimes": { + "win10-arm": {}, + "win10-arm-aot": {}, + "win10-x86": {}, + "win10-x86-aot": {}, + "win10-x64": {}, + "win10-x64-aot": {} + } +} \ No newline at end of file