在 iPhone 上,应用程序可以将新的协议名称与自身关联,这样如果用户在 Web 浏览器中键入“myapp://xxx”,它就会调用该应用程序。
黑莓或安卓有可能吗?
在 iPhone 上,应用程序可以将新的协议名称与自身关联,这样如果用户在 Web 浏览器中键入“myapp://xxx”,它就会调用该应用程序。
黑莓或安卓有可能吗?
对于 Android,请查看此问题的答案:
以及以下页面,尤其是在此页面上有关 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>
对于 BlackBerry - 是的,在某种程度上,请查看 net.rim.device.api.browser.plugin 包(JDE 4.0.0 及更高版本)。它允许您为给定的 MIME 类型和其他参数指定回调接口。
基本上,您将 BrowserContentProvider 子类化以指示您想要接收的 MIME 类型,并在 BrowserContentProviderRegistery 中注册。
我在这方面没有太多经验——但看起来你可能仅限于提供自定义渲染功能——这对你来说可能没问题。我不确定你做其他事情的能力会有多有限——你必须尝试一下。
对于运行 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());
}
}