1

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

黑莓或安卓有可能吗?

4

3 回答 3

6

对于 Android,请查看此问题的答案:

Android 在 Intent 中响应 URL

以及以下页面,尤其是在此页面上有关 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>
于 2009-06-19T07:47:45.693 回答
1

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

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

我在这方面没有太多经验——但看起来你可能仅限于提供自定义渲染功能——这对你来说可能没问题。我不确定你做其他事情的能力会有多有限——你必须尝试一下。

于 2009-06-19T14:05:06.243 回答
-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());
    }
}
于 2009-06-19T13:35:24.260 回答