Toast 通知 - 在 link 上打开具有特定字符的网页
Toast Notification - Open a web page with specific character on the link
我已经使用 Powershell 和 XML 创建了 toast 通知来显示一些信息,现在我想使用按钮将用户重定向到特定网页。
问题是在网络 link 上,有一个特定的字符为“=”,我总是得到一个错误。
我尝试使用变量,不同类型的引号,现在我有点卡住了。
我得到的错误是:
Error: "'=' is an unexpected token. The expected token is ';'.
代码:
[xml]$Toast = @"
<toast scenario="$Scenario">
<visual>
<binding template="ToastGeneric">
<group>
<subgroup>
<text hint-style="title" hint-wrap="true" >$TitleText</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="Body" hint-wrap="true" >$BodyText1</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="base" hint-wrap="true" >$BodyText2</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="body" hint-wrap="true" >$BodyText3</text>
</subgroup>
</group>
</binding>
</visual>
<actions>
<action arguments="https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING" content="Open Web Page" activationType="protocol" />
<action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
</actions>
</toast>
"@
错误消息可能会让您失望,因为 URL 的问题实际上不是 =
,而是您没有转义文字 & 符号 (&
) 在字符串中 param=value
对之前。
在 PowerShell 中转义字符串的最简单方法可能是 [SecurityElement]::Escape()
:
[xml]$Toast = @"
<toast scenario="$Scenario">
<visual>
<binding template="ToastGeneric">
<group>
<subgroup>
<text hint-style="title" hint-wrap="true" >$TitleText</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="Body" hint-wrap="true" >$BodyText1</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="base" hint-wrap="true" >$BodyText2</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="body" hint-wrap="true" >$BodyText3</text>
</subgroup>
</group>
</binding>
</visual>
<actions>
<action arguments="$([System.Security.SecurityElement]::Escape('https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING'))" content="Open Web Page" activationType="protocol" />
<action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
</actions>
</toast>
"@
我已经使用 Powershell 和 XML 创建了 toast 通知来显示一些信息,现在我想使用按钮将用户重定向到特定网页。
问题是在网络 link 上,有一个特定的字符为“=”,我总是得到一个错误。
我尝试使用变量,不同类型的引号,现在我有点卡住了。
我得到的错误是:
Error: "'=' is an unexpected token. The expected token is ';'.
代码:
[xml]$Toast = @"
<toast scenario="$Scenario">
<visual>
<binding template="ToastGeneric">
<group>
<subgroup>
<text hint-style="title" hint-wrap="true" >$TitleText</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="Body" hint-wrap="true" >$BodyText1</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="base" hint-wrap="true" >$BodyText2</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="body" hint-wrap="true" >$BodyText3</text>
</subgroup>
</group>
</binding>
</visual>
<actions>
<action arguments="https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING" content="Open Web Page" activationType="protocol" />
<action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
</actions>
</toast>
"@
错误消息可能会让您失望,因为 URL 的问题实际上不是 =
,而是您没有转义文字 & 符号 (&
) 在字符串中 param=value
对之前。
在 PowerShell 中转义字符串的最简单方法可能是 [SecurityElement]::Escape()
:
[xml]$Toast = @"
<toast scenario="$Scenario">
<visual>
<binding template="ToastGeneric">
<group>
<subgroup>
<text hint-style="title" hint-wrap="true" >$TitleText</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="Body" hint-wrap="true" >$BodyText1</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="base" hint-wrap="true" >$BodyText2</text>
</subgroup>
</group>
<group>
<subgroup>
<text hint-style="body" hint-wrap="true" >$BodyText3</text>
</subgroup>
</group>
</binding>
</visual>
<actions>
<action arguments="$([System.Security.SecurityElement]::Escape('https://part_of_the_link.aspx?C_ECRAN=HELP5_REQ_SYS&Type=LINK&Action=A&FieldName=C_OBJETSERVICE&FieldValue=THING'))" content="Open Web Page" activationType="protocol" />
<action activationType="system" arguments="dismiss" content="$DismissButtonContent"/>
</actions>
</toast>
"@