通用应用程序:从 javascript 调用 c# 方法

Universal apps: call c# method from javascript

几天以来,我一直在 Visual Studio 2015 年使用通用应用程序,我完全不知道如何在 class 中访问 c​​# 方法,因为没有 "WebMethod" -属性。

    <script type="text/javascript">
    function getWindowsDeviceUUID() {
        //$.ui.popup({
        //    title: "methodcall",
        //    message: "trying to call methode"
        //}
        //    );
        $.ajax({
            type: 'POST',
            url: 'MainPage.xaml.cs/GetDeviceUUID',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (uuid) {
                $.ui.popup({
                    title: "success",
                    message: "called method"
                }
                    );
                return uuid;
            }
        });
    };
</script>

我已经用 ajax 试过了,但是没有调用 "GetDeviceUUID" 方法。但是 getWindowsDeviceUUID 是。

一些附加信息: 我已经有多个 JS 和 HTML 文件必须在此应用程序中使用。 我通过 WebView 控件打开 HTML-Sites。

亲切的问候

我认为你只需要改变逻辑。与其直接调用 class,不如在后面的代码中编写一个可以访问 class 的函数,然后使用 WebMethod 让您的函数使用 class。如果即使在后面的代码中也无法访问 class,则需要更改 class。

假设您的主机应用程序是 C#(并且您的 HTML 托管在 WebView 中),那么您可以通过调用 AddWebAllowedObject method 注入 C# class 来公开 C# 方法,其中包括您要调用的方法。然后从脚本中,您可以通过 window.whatever-name-you-gave-it.some-method().

调用该方法