react-native-aliyun-push
react-native-aliyun-push copied to clipboard
辅助通道,页面白屏
小米、华为清除掉app进程走辅助通道,点击通知栏进入app,页面白屏
这是客户端配置 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();
}
}
}
}
同样点击通知白屏
一样的代码,也是白屏,不过把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)
服务端设置,setAndroidOpenType("APPLICATION"),setAndroidPopupActivity设置正确,再看看
有解决办法了吗?
打日志看了下,AliyunPushMessageReceiver.instance 和 ThirdPartMessageActivity.mainClass都是null
打日志看了下,AliyunPushMessageReceiver.instance 和 ThirdPartMessageActivity.mainClass都是null
有什么好的解决办法吗?~~
我对原生不熟,基本没写过。临时解决方案是复制个ThirdPartMessageActivity到自己的项目,然后在里面直接启动MainActivity,先解决白屏的问题,暂时还没处理怎么跳转到目标页面。
需要和后端配合的,后端setAndroidOpenType("APPLICATION"),setAndroidPopupActivity需要和app的一致
我对原生不熟,基本没写过。临时解决方案是复制个ThirdPartMessageActivity到自己的项目,然后在里面直接启动MainActivity,先解决白屏的问题,暂时还没处理怎么跳转到目标页面。
请问能贴个代码吗
我对原生不熟,基本没写过。临时解决方案是复制个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();
}
}