在黑莓和android:从Web浏览器调用本机应用程序?

时间:2009-06-19 05:44:27

标签: android browser blackberry native

在iPhone上,应用程序可以将新协议名称与自身关联,这样,如果用户在Web浏览器中键入“myapp:// xxx”,它就会调用该应用程序。

BlackBerry或Android可以吗?

3 个答案:

答案 0 :(得分:6)

对于Android,请看一下这个问题的答案:

Android Respond To URL in Intent

以及以下页面,尤其是关于本页的android:scheme的“数据类型”部分:

http://developer.android.com/guide/topics/intents/intents-filters.html

对于您的应用,您可以在AndroidManifest.xml中添加以下内容:

<intent-filter><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="myapp"></data>
</intent-filter>

答案 1 :(得分:1)

对于BlackBerry - 是的,在某种程度上,请查看net.rim.device.api.browser.plugin包(JDE 4.0.0及更高版本)。它允许您为给定的MIME类型和放大器指定回调接口。其他参数。

基本上,您将BrowserContentProvider子类化以指示您要接收的MIME类型,并向BrowserContentProviderRegistery注册。

我对此没有太多经验 - 但看起来您可能仅限于提供自定义渲染功能 - 这对您来说可能没问题。我不确定你做其他任何事情的能力是多么有限 - 你必须尝试一下。

答案 2 :(得分:-3)

对于运行4.0或更高版本的黑莓设备(所有“轨迹球”设备,最多运行至少4.2),您只需要以下代码:

// Get the default sessionBrowserSession
net.rim.blackberry.api.browser.browserSession = Browser.getDefaultSession();
// now launch the URL
browserSession.displayPage("http://www.BlackBerry.com");

由于这是一个非常可重复使用的代码段,我建议将它放在以下函数中:

public static void loadURL(String url)
{
    try{
        net.rim.blackberry.api.browser.BrowserSession bSession = net.rim.blackberry.api.browser.Browser.getDefaultSession();
        bSession.displayPage(url);
        bSession.showBrowser();
    }
    catch (Exception ex){
        System.out.println("Error loading url [" + url + "]: " + ex.getMessage());
    }
}