如何实现在Webview而不是浏览器中打开URL的OneSignal推送通知?

时间:2016-10-21 03:22:02

标签: android android-fragments webview onesignal

如何在发送信号推送通知时在webview中打开网址,此时它将在默认浏览器中打开,以及如何使用通知处理程序处理目标网址。这是我想要实现信号通知的示例代码,我尝试了我的级别最好无法处理它。专家提出的任何建议。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OneSignal.startInit(this).init();
}

处理

3 个答案:

答案 0 :(得分:1)

这是我的实现......我在我的Application类onCreate()

中添加了这段代码
OneSignal.startInit(this).setNotificationOpenedHandler(new OneSignal.NotificationOpenedHandler() {
            @Override
            public void notificationOpened(OSNotificationOpenResult result) {

                String launchURL = result.notification.payload.launchURL;

                if (launchURL != null) {
                    Log.d(Const.DEBUG, "Launch URL: " + launchURL);

                    Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.putExtra("url", launchURL);
                    startActivity(intent);

                } else {
                    Log.d(Const.DEBUG, "Launch URL not found");

                    Intent intent = new Intent(getApplicationContext(), SplashActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }
            }
        }).init();

答案 1 :(得分:0)

为了做到这一点,您应该将您的网址设置为附加数据字段,而不是启动网址。

接下来,使用OneSignal Android NotificationReceivedHandler,您可以检索此附加数据并打开网址的网页浏览。

答案 2 :(得分:0)

一种可能性是创建两种类型的消息,一种发送到浏览器,另一种发送到应用程序。 这个问题有一个例子说明如何做到这一点: https://wordpress.org/support/topic/variable-launchurl/

不确定它是否会对你的情况有所帮助,但我希望如此。