使用AddWebAllowedObject时,我是否仅限于值类型?

时间:2015-10-19 21:40:46

标签: c# win-universal-app uwp

使用AddWebAllowedObject在我的WebView中将C#组件暴露给Javascript时,函数参数和返回类型都需要是值类型吗?或者是否可以传递对象结构?

1 个答案:

答案 0 :(得分:0)

不,您不仅限于价值类型。

您可以参考official example。它是一个JS项目,但你可以在c#项目中做同样的事情。以下是您可以参考和搜索的兴趣代码:

调用AddWebAllowedObject的代码:

document.getElementById("webview").addWebAllowedObject("winRTSharedObject", winRTSharedObject);

HTML代码:

<body class="win-type-body">
    <div id="myDiv"></div>
    <script>
    if (window.winRTSharedObject !== undefined) {
    winRTSharedObject.checkPrimesInRange();
    } else {
    document.getElementById("myDiv").innerText = "\'winRTSharedObject\' object doesnt exists";
    }
    </script>
</body>

c ++ winrt组件中的代码:

WinRTSharedObject::WinRTSharedObject()
{
}

void WinRTSharedObject::CheckPrimesInRange()
{
    vector<int> numsVector;

    for (int num = startNumber; num <= endNumber; num++)
    {
        if (IsPrime(num))
        {
            numsVector.push_back(num);
            NotifyAppOfPrimes(num);
        }
    }

    int* numsArray = &numsVector[0];
    //return numsArray;
}