Android DeepLink的简单使用

deeplink是什么?

Deeplink,简单讲,就是在你手机上点击一个链接后,可以直接链接到app内部的某个页面,而不是app正常打开时显示的首页。累似web,一个链接就可以直接打开web的网页,app的内页打开,可以使用deeplink来实现

使用

在清单文件配置

代码.png

主要代码BROWSABLE意思是可以被外部浏览器打开,host和scheme类似http://xxxx,在跳转的时候会用

 
                
                
                
                
            

写一个html链接过去尝试打开deeplink界面要与上面data里面的字段的对应起来




    
    Document



尝试打开deeplink界面
注意:cc就是自己写的scheme,share是host可以自定义任意字符串,20是模拟传递的值



在MainActivity写一个webview用户加载刚写的网页

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView = findViewById(R.id.web_view);
        webView.loadUrl("file:///android_asset/" + "deeplink.html");
    }
}

在deeplinkActivity获取传递的值

public class DeepLinkActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_deep_link);
        TextView tv = findViewById(R.id.tv);
        //获得网页传递过来的
        Intent intent = getIntent();
        if (intent != null) {
            Uri uri = intent.getData();
            String scheme = uri.getScheme();//cc
            String host = uri.getHost();//share
            if ("share".equals(host)) {
                // 跳转到对应详情页面
                Toast.makeText(this, "host:"+host+"scheme:"+scheme+"值:"+uri.getPathSegments(), Toast.LENGTH_SHORT).show();
                tv.setText("host:"+host+"\nscheme:"+scheme+"\n值:"+uri.getPathSegments());
            }
        }
    }
}

效果点击后就打开我们写的详情页了,我是写在一个app里的,当然只要是webview就可以打开对应的详情页,两个应用之间的跳转就完成了

封装方法用来activity之间的跳转

    /**
     * deepLink跳转
     **/
    protected void deepLinkJump(String deepLinkUrl) {
        Uri uri = Uri.parse(deepLinkUrl);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    }

点击事件中调用

deepLinkJump("cc://chat_activity");//记得在清单文件添加host和scheme哦!

如下图


image.png
image.png
image.png

你可能感兴趣的:(Android DeepLink的简单使用)