当前位置:  开发笔记 > 编程语言 > 正文

使用URL启动应用

如何解决《使用URL启动应用》经验,为你挑选了1个好方法。

我已经阅读了关于Android中的意图,但这里是我的问题.我想通过点击网络浏览器中的链接在我的Android手机上启动应用程序.示例:如果链接是"mycam:// http://camcorder.com ","mycam://"充当某种"标记"来启动我的应用程序,但我想通过" http:// camcorder.com "作为开始时该应用程序的字符串.

请帮忙!

谢谢!



1> qrtt1..:

浏览器应用源代码中有一个方法,:

public boolean shouldOverrideUrlLoading(WebView view, String url) { ... }

点击一个网址后,它还没有开始加载:

    将网址转换为意图

    Intent intent;
    
    // perform generic parsing of the URI to turn it into an Intent.
    try {
        intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
    } catch (URISyntaxException ex) {
        Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage());
        return false;
    }
    

    如果它不是以market://(或某些预定义的方案)开头,请尝试startActivityIfNeeded()

    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    intent.setComponent(null);
    try {
        if (startActivityIfNeeded(intent, -1)) {
            return true;
        }
    } catch (ActivityNotFoundException ex) {
        // ignore the error. If no application can handle the URL,
        // eg about:blank, assume the browser can handle it.
    }
    

这是非常有用的信息!我用一个简单的代码重新演绎这种情况:

Intent intent = Intent.parseUri("mycam://http://camcorder.com", Intent.URI_INTENT_SCHEME);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setComponent(null);
System.out.println(intent);

结果将为我提供使用intent-filter编写活动的线索:

        
            
                
                
            
            
                
                
                
                
            
        

PS.不要忘记android.intent.category.DEFAUL.

最后,您的Activity可以通过mycam:// scheme调用

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有