zoukankan      html  css  js  c++  java
  • 移动开发中的Scheme跳转说明——Allowing OtherApps to Start Your Activity

    Allowing OtherApps to Start Your Activity

     

    为了开发更多人使用的App,我们总希望我们的App能够提供一种接口被其他App调用。如我们常见的 大众点评    豆瓣。他们这种资源丰富的App能给我们提供很多丰富的资源。

    例如豆瓣的scheme

                     

                  <activity
                                android:name="com.douban.movie.PlayVideoActivity"
                                >
                                <intent-filter>
                                         <action
                                                   android:name="com.douban.movie"
                                                   >
                                         </action>
                                         <action
                                                   android:name="android.intent.action.VIEW"
                                                   >
                                         </action>
                                         <category
                                                   android:name="android.intent.category.DEFAULT"
                                                   >
                                         </category>
                                         <category
                                                   android:name="android.intent.category.BROWSABLE"
                                                   >
                                         </category>
                                         <data
                                                   android:scheme="http"
                                                   android:host="movie.douban.com"
                                                   android:pathPattern="/trailer/.*/"
                                                   >
                                         </data>
                                </intent-filter>
                       </activity>
     

     

    主要的是在于定义了:

     

    android:name="android.intent.category.BROWSABLE"


             

    <data
         android:scheme="http"
         android:host="movie.douban.com"
         android:pathPattern="/trailer/.*/"
    >
    </data>

    我们知道,如果用户的手机上没有安装您的App,第三方App如果需要使用Scheme跳转的话就会产生错误。

    这个样子的话我们的一般解决办法是直接跳转到网页版的应用上去。

    所以,将Scheme写成类似Url的形式方便我们进行应用内的跳转与网页上的跳转。

     

    当然,也可以分开来写,如同大众点评的。

     

     String id = "3102397";
                        try
                        {
                            Uri url = Uri.parse("dianping://shopinfo?id=" + id);
                            Intent intent = new Intent(Intent.ACTION_VIEW, url);
                            mContext.startActivity(intent);
                        }
                        catch (Exception e)
                        {
                            // 没有安装应用,默认打开HTML5站
                            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.dianping.com/shop/" + id));
                            mContext.startActivity(intent);
                        }


     

     

    附件中上传了一个自己写的shemedemo如果不清楚的可以看看


    demo

  • 相关阅读:
    结对项目——电子书的字段
    痛点分析
    文本统计——字符 单词 行数
    音乐播放器需求分析
    简单的四则运算
    高德地图——一款功能强大的APP
    记一次mysql小版本升级
    Servlet/JSP面试题目-----近期总结
    【转】各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB
    springMVC框架(二)---springMVC框架高级开发
  • 原文地址:https://www.cnblogs.com/james1207/p/3304042.html
Copyright © 2011-2022 走看看