由浏览器跳转到自己的app

       很早就想开博客了,但是因为自己的种种原因(可能也就是自己比较懒吧)一直没开篇。对于开篇,也是想了一下的,自己写点什么呢?是一个长篇?是一个特别精湛的?后来想想了,只要用心就好了。今天正值反法西斯胜利70周年的阅兵,祝愿祖国伟大昌盛,永久强大。好了,下面开始我的正文了。

      项目中需要用到H5。好吧,既然如此,那就开始webview历程吧。

      首先,盲目的搜索了一番:scheme,看到了好多的文章,大多都是说,怎么配置AndroidManifest.xml。然后就是startActivity()。

      到此就有两个问题了:

     1、scheme从哪来(就是由谁设置)。

     2、在哪startActivity()。

     然后带着问题又是一通狂搜(又看了几篇文章),然后解决了第一个问题:scheme从哪来(就是由谁设置)。答案就是由后台设置,然后android人员在AndroidManifest.xml中设置。

<span style="font-size:14px;"><intent-filter>

                <action android:name="android.intent.action.VIEW" /><!-- 显示数据 -->

                <category android:name="android.intent.category.DEFAULT" />

                <category android:name="android.intent.category.BROWSABLE" /><!-- 定义成浏览器类型,有URL需要处理时会过滤 -->

                <data android:scheme="xxx" /><!-- 打开以xxx协议的URL,这个自己随便定义。这也就是前面说的标志。 -->

            </intent-filter></span>


       好了,scheme设置完了,接下来是第二个问题。又翻了几篇文章之后,我想到了WebViewClient的shouldOverrideUrlLoading(WebView view, String url)方法。赶紧对url做了一个简单的判空操作后,就运行了代码。然后,第三个问题又来了。跳转到了指定的activity后,返回时,我看到了不想看的界面,就是系统自带浏览器加载失败的情况。我们需要的是android自己的activity,而不是浏览器。之后看到了一篇文章:http://www.iteedu.com/handset/android/webviewdiary/webviewclick.php(帮助解决了关键的问题,所以感谢作者,在此标注一下链接)。我按照文章做了if()else()的判断,然后运行,一切ok。


    点击下载DEMO



展开阅读全文

没有更多推荐了,返回首页