1

JavaScript と Html でトーストを使用して、メッセージ配信通知用の Windows 8 アプリを開発しています。デフォルトではトースト音は「デフォルト」ですが、「SMS」音に変換したいです。また、通知中に何を表示するかについて、ユーザーからの入力も受け付けています。

私のHTMLコードは次のようになります

<div>String to display <input type="text" size="20" maxlength="20"      
id="inputString" /></div>
<button id="inputButton" class="action">button</button>

JavaScriptコードは次のようになります

(function () {
"use strict";
var page = WinJS.UI.Pages.define("/html/home.html", {
    ready: function (element, options) {
        document.getElementById("inputButton").addEventListener("click", noti, false);
 ...


function noti(e) {
    var targetButton = e.currentTarget;

今、私は今何をすべきか立ち往生しています..

サンプル sdk からの次のコードがありますが、これには適合できません

 var toastSoundSource = targetButton.id;

    // Get the toast manager for the current app.
    var notificationManager = Notifications.ToastNotificationManager;

    var content = ToastContent.ToastContentFactory.createToastText02();

    content.audio.content = ToastContent.ToastAudioContent[toastSoundSource];

私はまた、それを使用するだけでできると言っているいくつかのブログを読みました

toast.Audio.Content = ToastAudioContent.Silent;

私はそれを台無しにしているだけだと思います。親切にすぐに助けてください。ありがとう

4

1 に答える 1

0

私はあなたのコードをチェックしていますが、実際にあなたの問題はここにあります:

var toastSoundSource = targetButton.id; // you are getting the id of your button, however your button ID is not a valid index for the sounds we have available in Win8.
content.audio.content = ToastContent.ToastAudioContent[toastSoundSource]; //so when your code arrive here, nothing changes, and Winjs keeps using the DEFAULT sound...

この問題を解決するには、ボタン ID を「sms」に変更するか、次のいずれかの方法でコードを実装します。

1 つ目 - Windows に SMS の使用を強制する (使用したいサウンドがこれだけの場合は...

 function noti(e) {
    var targetButton = e.currentTarget;
    var toastSoundSource = targetButton.id;
    // Get the toast manager for the current app.
    var notificationManager = Notifications.ToastNotificationManager;
    var content = ToastContent.ToastContentFactory.createToastText02();
    content.audio.content = ToastContent.ToastAudioContent.sms; // force system to use SMS sound
    var toast = content.createNotification();
    notificationManager.createToastNotifier().show(toast);
}

2番目-クリックされたボタンに基づいてコードがサウンドを選択できるよりも多くのオプションが利用可能な場合は、if/elseを作成できます...

function noti(e) {
    var targetButton = e.currentTarget;
    var toastSoundSource = targetButton.id;
    // Get the toast manager for the current app.
    var notificationManager = Notifications.ToastNotificationManager;
    var content = ToastContent.ToastContentFactory.createToastText02();

    if ( toastSoundSource == "inputButton") 
       content.audio.content = ToastContent.ToastAudioContent.sms;
    else 
           content.audio.content = ToastContent.ToastAudioContent.im

    var toast = content.createNotification();
    notificationManager.createToastNotifier().show(toast);
}

これが役立つことを願っています:)

于 2012-11-19T21:46:33.037 に答える