点按通知时如何在应用中打开链接

时间:2017-12-30 16:30:42

标签: android onesignal

我最近为我的wordpress博客开发了原生Android应用程序。我正在项目中使用OneSignal推送通知服务。此外,我能够收到通知。问题是每当我在设备上收到通知并点击它时,它会打开浏览器而不是应用程序。 这是主要的Activity Java代码的片段。

    import android.view.Menu;
    import android.view.MenuItem;
    import com.google.android.gms.ads.AdView;
    import com.onesignal.OneSignal;

    public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, HomeFragment.OnFragmentInteractionListener {

    private AdView mAdView;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
        OneSignal.startInit(this)
                .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
                .unsubscribeWhenNotificationsAreDisabled(true)
                .setNotificationOpenedHandler(new NotificationHandler())
                .init();
         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);

         navigationView.setNavigationItemSelectedListener(this);
         onNavigationItemSelected(navigationView.getMenu().getItem(0));


     }

这是课程NotificationHandler

package com.savvydroid.savvydroid;

import android.content.Context;
import android.content.Intent;
import android.util.Log;

import com.onesignal.OSNotificationAction;
import com.onesignal.OSNotificationOpenResult;
import com.onesignal.OneSignal;

+import org.json.JSONObject;

/**
+ * Created by geeth on 12/30/2017.
 */
class NotificationHandler implements OneSignal.NotificationOpenedHandler {
    public Context mcontext;
    @Override
    public void notificationOpened(OSNotificationOpenResult result) {
        OSNotificationAction.ActionType actionType = result.action.type;
        JSONObject data = result.notification.payload.additionalData;
        String customKey;

        if (data != null) {
            customKey = data.optString("customkey", null);
            if (customKey != null)
                Log.i("OneSignalExample", "customkey set with value: " + customKey);
        }

        if (actionType == OSNotificationAction.ActionType.ActionTaken)
            Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);

        Intent intent = new Intent(mcontext, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
Add a comment to this line
        mcontext.startActivity(intent);

    }
}

有人请帮忙,我最早需要完成这个项目。

1 个答案:

答案 0 :(得分:1)

你应该使用PendingIntent。

您可以在journaldev

中看到示例
相关问题