我正在使用Titanium appcelerator(使用合金)创建Android应用,我创建状态栏通知,问题是当通知出现时,我想打开一个特定窗口并在用户点击时传递一些数据通知,所以我的代码是:
// Intent object to launch the application
var intent = Ti.Android.createIntent({
action : Ti.Android.ACTION_MAIN,
flags : Ti.Android.FLAG_ACTIVITY_CLEAR_TOP | Ti.Android.FLAG_ACTIVITY_NEW_TASK,
url : "window.js"
});
intent.addCategory(Ti.Android.CATEGORY_LAUNCHER);
intent.putExtra("id", "10");
var activity = Ti.Android.currentActivity;
// Create a PendingIntent to tie together the Activity and Intent
var pending = Titanium.Android.createPendingIntent({
activity : activity,
intent : intent,
type : Ti.Android.PENDING_INTENT_FOR_ACTIVITY,
flags : Titanium.Android.FLAG_CANCEL_CURRENT
});
// Create the notification
var notification = Titanium.Android.createNotification({
// icon is passed as an Android resource ID -- see Ti.App.Android.R.
icon : Ti.App.Android.R.drawable.appicon,
contentTitle : 'Something Happened',
contentText : 'Click to return to the application.',
contentIntent : pending,
flags : Ti.Android.ACTION_DEFAULT | Ti.Android.FLAG_AUTO_CANCEL | Ti.Android.FLAG_SHOW_LIGHTS
});
// Send the notification.
Titanium.Android.NotificationManager.notify(1, notification);
当用户点击通知时,实际上,应用程序会出现在前面,但是在同一个窗口中,不是完全想要的窗口。
我几乎在那里,给我一点推力。
感谢。
答案 0 :(得分:2)
好的,我在这里回答我自己的问题,我浪费了整整2天的时间来表达这一点,我开始认为没有一个大的钛开发社区,无论如何一些重要的点在这里:
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
可能听起来不错,但在钛合金中却没有
工作。我避免在这种情况下使用操作,此Intent只有flags
和
url
属性。activity
和flags
属性。使用Titanium 3.4.0.GA的代码是:
// Intent object to launch the application
var intent = Ti.Android.createIntent({
flags : Ti.Android.FLAG_ACTIVITY_NEW_TASK | Ti.Android.FLAG_ACTIVITY_SINGLE_TOP,
url: "videocomplete.js"
});
intent.addCategory(Ti.Android.CATEGORY_LAUNCHER);
intent.putExtra("id", "10");
var activity = Ti.Android.currentActivity;
// Create a PendingIntent to tie together the Activity and Intent
var pending = Titanium.Android.createPendingIntent({
intent : intent,
flags : Titanium.Android.FLAG_CANCEL_CURRENT
});
// Create the notification
var notification = Titanium.Android.createNotification({
// icon is passed as an Android resource ID -- see Ti.App.Android.R.
icon : Ti.App.Android.R.drawable.appicon,
contentTitle : 'Something Happened',
contentText : 'Click to return to the application.',
contentIntent : pending,
flags : Ti.Android.ACTION_DEFAULT | Ti.Android.FLAG_AUTO_CANCEL | Ti.Android.FLAG_SHOW_LIGHTS
});
// Send the notification.
Titanium.Android.NotificationManager.notify(1, notification);
重要声明在tiapp.xml中声明活动,此配置必须在android节点
中<activities>
<activity url="youractivityfile.js">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
</activities>
**重要的是,如果您使用合金,您的活动js文件必须在
app&gt;资产&gt;机器人
当用户点击通知时,将执行该文件中的代码。**