diff --git a/.gitignore b/.gitignore index 306dc5f..6895a14 100644 --- a/.gitignore +++ b/.gitignore @@ -185,3 +185,4 @@ UpgradeLog*.htm # Microsoft Fakes FakesAssemblies/ +Nuget/lib/ diff --git a/ExampleProject/ExampleProject.Shared/MainPage.xaml.cs b/ExampleProject/ExampleProject.Shared/MainPage.xaml.cs index 319ba63..7ab82df 100644 --- a/ExampleProject/ExampleProject.Shared/MainPage.xaml.cs +++ b/ExampleProject/ExampleProject.Shared/MainPage.xaml.cs @@ -23,7 +23,7 @@ protected override void OnNavigatedTo(NavigationEventArgs e) callback(@"Response for message from C#"); }); - _bridge.RegisterHandlder(@"testCSharpCallback", (data, callback) => + _bridge.RegisterHandler(@"testCSharpCallback", (data, callback) => { _outputResults.Insert(0, @"Receive message from JS: " + data); callback(@"Response from testCSharpCallback"); diff --git a/ExampleProject/ExampleProject.Windows/ExampleProject.Windows.csproj b/ExampleProject/ExampleProject.Windows/ExampleProject.Windows.csproj index 5bb415c..13fe5cf 100644 --- a/ExampleProject/ExampleProject.Windows/ExampleProject.Windows.csproj +++ b/ExampleProject/ExampleProject.Windows/ExampleProject.Windows.csproj @@ -102,13 +102,6 @@ prompt true - - - - {1dfbef87-682f-4f3d-b8ba-a72ed0feb84b} - WebViewJavascriptBridgeRT - - MainPage.xaml @@ -133,6 +126,12 @@ Designer + + + {1dfbef87-682f-4f3d-b8ba-a72ed0feb84b} + WebViewJavascriptBridgeRT + + 12.0 diff --git a/ExampleProject/ExampleProject.WindowsPhone/ExampleProject.WindowsPhone.csproj b/ExampleProject/ExampleProject.WindowsPhone/ExampleProject.WindowsPhone.csproj index 1e40699..c1ffd55 100644 --- a/ExampleProject/ExampleProject.WindowsPhone/ExampleProject.WindowsPhone.csproj +++ b/ExampleProject/ExampleProject.WindowsPhone/ExampleProject.WindowsPhone.csproj @@ -79,13 +79,6 @@ prompt true - - - - {1dfbef87-682f-4f3d-b8ba-a72ed0feb84b} - WebViewJavascriptBridgeRT - - MainPage.xaml @@ -111,6 +104,12 @@ Designer + + + {1dfbef87-682f-4f3d-b8ba-a72ed0feb84b} + WebViewJavascriptBridgeRT + + 12.0 diff --git a/Nuget/BuildPublishPackage.cmd b/Nuget/BuildPublishPackage.cmd index 659f679..7466071 100644 --- a/Nuget/BuildPublishPackage.cmd +++ b/Nuget/BuildPublishPackage.cmd @@ -2,7 +2,7 @@ :: Set repository info set key=77390135-ecaf-47e7-9f15-ae2b38102747 -set url=https://github.com/blastmann/WebViewJavascriptBridgeRT +set url=https://www.nuget.org/packages/WebViewJavascriptBridgeRT/ :: Make sure the nuget executable is writable attrib -R NuGet.exe diff --git a/Nuget/WebViewJavascriptBridgeRT.1.0.3.nupkg.bak b/Nuget/WebViewJavascriptBridgeRT.1.0.3.nupkg.bak new file mode 100644 index 0000000..1d8bea3 Binary files /dev/null and b/Nuget/WebViewJavascriptBridgeRT.1.0.3.nupkg.bak differ diff --git a/Nuget/WebViewJavascriptBridgeRT.nuspec b/Nuget/WebViewJavascriptBridgeRT.nuspec index e691871..8160188 100644 --- a/Nuget/WebViewJavascriptBridgeRT.nuspec +++ b/Nuget/WebViewJavascriptBridgeRT.nuspec @@ -2,7 +2,7 @@ WebViewJavascriptBridgeRT -1.0.2 +1.0.3 WebViewJavascriptBridgeRT blastmann blastmann @@ -21,6 +21,9 @@ WinRT下桥接WebView,自如地让C#和JS相互调用 ----- +1.0.3 +Update script notify process. + 1.0.2 1.0.1 Fix publish problems. diff --git a/Nuget/laucher.cmd b/Nuget/laucher.cmd index 0c88851..bff618e 100644 --- a/Nuget/laucher.cmd +++ b/Nuget/laucher.cmd @@ -1,4 +1,4 @@ -set ver=1.0.2 +set ver=1.0.3 xcopy lib\*.* ..\packages\WebViewJavascriptBridgeRT.%ver%\lib /s /i /y BuildPublishPackage.cmd WebViewJavascriptBridgeRT %ver% diff --git a/Nuget/lib/WebViewJavascriptBridge.js b/Nuget/lib/WebViewJavascriptBridge.js deleted file mode 100644 index e30c891..0000000 --- a/Nuget/lib/WebViewJavascriptBridge.js +++ /dev/null @@ -1,115 +0,0 @@ -;(function() { - if (window.WebViewJavascriptBridge) { return; - } - var messagingIframe; - var sendMessageQueue = []; - var receiveMessageQueue = []; - var messageHandlers = {}; - var CUSTOM_PROTOCOL_SCHEME = 'wvjbscheme'; - var QUEUE_HAS_MESSAGE = '__WVJB_QUEUE_MESSAGE__'; - var responseCallbacks = {}; - var uniqueId = 1; - - function _createQueueReadyIframe(doc) { - messagingIframe = doc.createElement('iframe'); - messagingIframe.style.display = 'none'; - messagingIframe.src = "ms-appx-web:///WebViewJavascriptBridgeRT/WebViewScriptNotifyBridgeFrame.html"; - doc.documentElement.appendChild(messagingIframe); - } - - function init(messageHandler) { - if (WebViewJavascriptBridge._messageHandler) { throw new Error('WebViewJavascriptBridge.init called twice'); - } - WebViewJavascriptBridge._messageHandler = messageHandler; - var receivedMessages = receiveMessageQueue; - receiveMessageQueue = null; - for (var i=0; i - - - - WebViewScriptNotifyBridgeFrame - - - - - \ No newline at end of file diff --git a/README.md b/README.md index ebec4b9..a7fe6b2 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,44 @@ WebViewJavascriptBridgeRT A WinRT 8.1 [WebViewJavascriptBridge](https://github.com/marcuswestin/WebViewJavascriptBridge), you can send message between C# and JS with WebView. +HOW TO? +------------ + +To use a `WebViewJavascriptBridge`, please follow these steps. + + +## First + +Create a bridge instance, pass your target WebView. + +``` C# + +var bridge = new WebViewJavascriptBridge(TestWebView, (data, callback) => +{ + Debug.WriteLine(@"Receive message from JS: " + data); + callback(@"Response for message from C#"); +}); + +``` + +## Register native function for your JS + + +``` C# + +bridge.RegisterHandler(@"testCSharpCallback", (data, callback) => +{ + Debug.WriteLine(@"Receive message from JS: " + data); + callback(@"Response from testCSharpCallback"); +}); + +``` + +Then you can call C# code by sending `testCSharpCallback` string to native. + + + What's next? ------------ -- Implement a weak event pattern for WebView event subscription. Then remove the 'Destroy' method. - Keep improving performance of sending message from JS. diff --git a/WebViewJavascriptBridgeRT/WebViewJavascriptBridge.cs b/WebViewJavascriptBridgeRT/WebViewJavascriptBridge.cs index c566a36..27285b6 100644 --- a/WebViewJavascriptBridgeRT/WebViewJavascriptBridge.cs +++ b/WebViewJavascriptBridgeRT/WebViewJavascriptBridge.cs @@ -105,7 +105,7 @@ public void CallHandler(string handlerName, object data, WVJBResponseCallback re /// /// /// - public void RegisterHandlder(string handlerName, WVJBHandler handler) + public void RegisterHandler(string handlerName, WVJBHandler handler) { _messageHandlers[handlerName] = handler; }