react-native-aliyun-push icon indicating copy to clipboard operation
react-native-aliyun-push copied to clipboard

辅助通道,页面白屏

Open brucexb opened this issue 6 years ago • 11 comments

小米、华为清除掉app进程走辅助通道,点击通知栏进入app,页面白屏

brucexb avatar Jul 23 '19 01:07 brucexb

这是客户端配置 public class ThirdPartMessageActivity extends AndroidPopupActivity {

public static Class<?> mainClass;
public static ReactApplicationContext context;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

/**
 * 实现通知打开回调方法,获取通知相关信息
 * @param title     标题
 * @param summary   内容
 * @param extMap    额外参数
 */
@Override
protected void onSysNoticeOpened(String title, String summary, Map<String, String> extMap) {
    if (AliyunPushMessageReceiver.instance!=null) {
        AliyunPushMessageReceiver.instance.onNotification(context, title, summary, extMap);

        if (ThirdPartMessageActivity.mainClass!=null) {
            Intent itent=new Intent();
            itent.setClass(ThirdPartMessageActivity.this, mainClass);
            startActivity(itent);
            ThirdPartMessageActivity.this.finish();
        }
    }
}

}

brucexb avatar Jul 23 '19 01:07 brucexb

同样点击通知白屏

eward957 avatar Aug 07 '19 09:08 eward957

一样的代码,也是白屏,不过把issue看了一遍,作者提到使用URL Scheme解决。 在打开回调方法中使用以下代码拉起app `

   String url = "scheme://host?参数;
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
    ThirdPartMessageActivity.this.finish();`

然后在js中使用以下代码监听 Linking.addEventListener('url', handleOpenURL)

kuaigoumanzhu avatar Aug 17 '19 10:08 kuaigoumanzhu

服务端设置,setAndroidOpenType("APPLICATION"),setAndroidPopupActivity设置正确,再看看

vance-liu avatar Oct 30 '19 08:10 vance-liu

有解决办法了吗?

phalera avatar Nov 06 '19 08:11 phalera

打日志看了下,AliyunPushMessageReceiver.instance 和 ThirdPartMessageActivity.mainClass都是null

DebugFuture avatar Nov 11 '19 09:11 DebugFuture

打日志看了下,AliyunPushMessageReceiver.instance 和 ThirdPartMessageActivity.mainClass都是null

有什么好的解决办法吗?~~

phalera avatar Nov 11 '19 10:11 phalera

我对原生不熟,基本没写过。临时解决方案是复制个ThirdPartMessageActivity到自己的项目,然后在里面直接启动MainActivity,先解决白屏的问题,暂时还没处理怎么跳转到目标页面。

DebugFuture avatar Nov 11 '19 10:11 DebugFuture

需要和后端配合的,后端setAndroidOpenType("APPLICATION"),setAndroidPopupActivity需要和app的一致

vance-liu avatar Nov 12 '19 02:11 vance-liu

我对原生不熟,基本没写过。临时解决方案是复制个ThirdPartMessageActivity到自己的项目,然后在里面直接启动MainActivity,先解决白屏的问题,暂时还没处理怎么跳转到目标页面。

请问能贴个代码吗

linxianxi avatar Nov 25 '19 02:11 linxianxi

我对原生不熟,基本没写过。临时解决方案是复制个ThirdPartMessageActivity到自己的项目,然后在里面直接启动MainActivity,先解决白屏的问题,暂时还没处理怎么跳转到目标页面。

请问能贴个代码吗

package com.spiderpoolapp;

import java.util.Map;
import android.content.Intent;
import android.os.Bundle;

import com.alibaba.sdk.android.push.AndroidPopupActivity;
import com.facebook.react.bridge.ReactApplicationContext;

public class ThirdPartMessageActivity extends AndroidPopupActivity {

  public static ReactApplicationContext context;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  }

  /**
   * 实现通知打开回调方法,获取通知相关信息
   * @param title     标题
   * @param summary   内容
   * @param extMap    额外参数
   */
  @Override
  protected void onSysNoticeOpened(String title, String summary, Map<String, String> extMap) {
    Intent intent=new Intent();
    intent.setClass(ThirdPartMessageActivity.this, MainActivity.class);
    startActivity(intent);
    ThirdPartMessageActivity.this.finish();
  }
}

DebugFuture avatar Nov 29 '19 06:11 DebugFuture