在一个app中唤醒拉起另一个app应用(DeepLink拉活)

假如使用A应用拉起唤醒B应用中的某个具体页面:
在A中:

String url = "app0423://example.com:/main";
Intent intent1 = new Intent();
intent1.setAction("android.intent.action.VIEW");
Uri uri = Uri.parse(url );
intent1.setData(uri);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);

在B应用中:
AndroidManifest.xml


    
        
        
    
    
        
        
        
        
    

其中action是 Intent隐式跳转的标志:
data标签可以定位到具体的Activity
scheme :app0423
host:example.com
path:/main
对应Uri:app0423://example.com:/main

/**
 * 从deep link中获取数据
 */
private void getData() {

    Intent intent = getIntent();
    String pag = intent.getPackage();

    Uri data = getIntent().getData();

    if (data== null)
        return;
    try {
        String scheme = data.getScheme();
        String host = data.getHost();
        List params = data.getPathSegments();
        // 传过来的数据
        String testId = params.get(0);
        String text = "Scheme: " + scheme + "\n" + "host: " + host + "\n" + "params: " + testId;
        System.out.println(text);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

其中 intent.getPackage() 为null

你可能感兴趣的:(html,Android,Studio,Android)