1

我有一个链接需要使用 webview 显示

我使用了如下所示的代码

import net.rim.device.api.browser.field2.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;

public class BrowserFieldDemo extends UiApplication
{
    public static void main(String[] args)
    {
        BrowserFieldDemo app = new BrowserFieldDemo();
        app.enterEventDispatcher();
    }

    public BrowserFieldDemo()
    {
        pushScreen(new BrowserFieldDemoScreen());
    }
}

class BrowserFieldDemoScreen extends MainScreen
{
    public BrowserFieldDemoScreen()
    {
        BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();
        myBrowserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);
        BrowserField browserField = new BrowserField(myBrowserFieldConfig);

        add(browserField);
        browserField.requestContent("http://www.blackberry.com");
    }
}

但这给出了身份验证错误 401,这可能是因为我直接点击链接而导致的......那么我如何添加一些代码行来验证现有代码中的用户

4

1 回答 1

0

我建议您查看两个 BrowserField 交互示例。一个在 BlackBerry Facebook SDK 中提供,您可以在此处找到:

脸书 SDK

您可以在此处找到有关此 SDK 的博客:

Facebook SDL 博客

这不是由 BlackBerry 编写的,但有点受支持。我用过它,但我个人觉得它比我需要的更复杂,所以我建议你查看 Twitter API ME SDK

推特 API ME

这段代码创建了一个单独的 BrowserField 封闭类,无论如何,在我看来它使与 BrowserField 交互变得更简单。

所以回到你的问题,你如何在黑莓上实现这一点?抱歉,我不回答那个具体的问题。我正在做的是为您提供两个项目的链接,这些项目是为此而编写的,我建议您查看这些项目中包含的代码,然后自己弄清楚。

在这个和其他论坛网站上有很多关于这两个 API 的论坛帖子。我建议您也搜索更多信息。

BB 开发者网站也有很多关于 BrowserField 的有用文章,包括这篇:

创建你的第一个 BrowserField

更新

既然您已经更新了问题,上述内容实际上并不相关。

如果我理解正确,通常你必须输入用户名和密码才能进行身份验证,然后你才能观看视频。在您的情况下,您希望 BrowserField 直接转到视频链接。这不起作用,因为您没有输入登录信息。

我对这个过程不是很熟悉,但我怀疑你是否真的可以这样做取决于网站使用的身份验证方法。

如果它是标准的基本身份验证,那么我认为你可能没问题。您可以在发出请求之前提供用户名和密码作为标头 - 请参阅 BrowserField addStandardRequestHeaders(...) 方法。抱歉,我无法为您提供为基本身份验证提供标头所需的格式,但我过去已经这样做了,我认为如果您搜索所需的标头,则它有据可查。从内存中,您需要对用户名进行 Base64 编码,后跟分号,然后是密码,并将其添加为“身份验证”标头。

如果是其他一些身份验证,那么您需要找出什么以及是否可以将信息添加到允许您绕过身份验证屏幕的标题中。

如果您不熟悉 HTTP 标头,则需要进行一些研究以了解它们是什么以及如何使用它们。

如果您无法在标题中提供身份验证信息,那么我认为您只需要要求用户登录 - 或将视频移动到更多公共空间。

进一步更新

描述身份验证所需标头的官方文档在这里:

RFC2617

也许可以在此处找到更易读的基本身份验证摘要:

http://en.wikipedia.org/wiki/Basic_access_authentication

您通常可以使用提供的 HttpProtocolConstants 类来设置常量 HTTP 值,例如,关键是:

HttpProtocolConstants.HEADER_AUTHORIZATION

内容将是

“基本” + '你的 Base64 编码的 username_semicolon_password 字符'

于 2014-02-26T09:34:02.770 回答