从parse.com发送的通知中打开链接

时间:2014-08-19 14:37:49

标签: android webview notifications parse-platform

我有与parse.com相关的应用程序。我需要发送通知(message + url)并在我的webview应用程序中打开它。我用广播接收器接收通知。 我当前的版本打开在MainActivity中声明的主页,但我想打开通知中发送的链接。

这是我的代码:

JSON: {   "警告":" Nowy发布!",   "行动":" http://google.com" }

部分来自MANIFEST:

                                          

公共类MyCustomReceiver扩展了BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {


    try {
          String action = intent.getAction();
          String channel = intent.getExtras().getString("com.parse.Channel");
          JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));

          String url = json.getString("action");
          Intent i = new Intent(Intent.ACTION_VIEW);
          i.setData(Uri.parse(url));
          context.getApplicationContext().startActivity(i);

        } catch (JSONException e) {
          Log.d(TAG, "JSONException: " + e.getMessage());
        }

}

}

2 个答案:

答案 0 :(得分:1)

我正在使用类似的实现工作。

将JSON编码为:

{ "action": "your.package.name.UPDATE_STATUS", "url": "http://google.com" }

确保您的AndroidManifest具有:

<receiver android:name="your.package.name.MyCustomReceiver" android:exported="false">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="your.package.name.UPDATE_STATUS" />
        </intent-filter>
    </receiver>

然后获取String url:

JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
String myURL = json.getString("url");

请勿忘记更改 your.package.name 以匹配您的应用。

答案 1 :(得分:0)

这个简单的实现,对我来说很完美:

Json格式:

{ "alert": "Awesome Web site !", "url": "http://stackoverflow.com" }

在我的BroadcastReceiver中:



    Bundle extras = intent.getExtras();
    String jsonData = extras.getString( "com.parse.Data" );

    try{
        JSONObject json = new JSONObject(jsonData);
        String url = json.getString("url");
        Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        viewIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(viewIntent);
     }catch(JsonException e){
        .....
     }