使用AddWebAllowedObject在我的WebView中将C#组件暴露给Javascript时,函数参数和返回类型都需要是值类型吗?或者是否可以传递对象结构?
答案 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;
}