我有一个需要使用webview显示的链接 我有一个链接,当在普通浏览器中打开时说chrome首先提示一个对话框输入用户名和密码,然后转到嵌入了视频的链接
我使用了如下所示的代码
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,这可能是因为我直接点击了链接...所以如何在现有代码中添加一些代码行来验证用户
答案 0 :(得分:0)
我建议您查看两个BrowserField交互示例。一个是在BlackBerry Facebook SDK中提供的,您可以在这里找到:
您可以在此处找到有关此SDK的博客:
这不是由BlackBerry编写的,但有点支持。我已经使用过它,但我个人认为它比我需要的更复杂,所以我建议你查看Twitter API ME SDK
这段代码创建了一个单独的BrowserField封闭类,无论如何我觉得它更容易与BrowserField进行交互。
回到你的问题,你如何在黑莓手机上实现这一目标?对不起,我没有回答这个具体问题。我正在做的是给你链接到两个为此目的编写的项目,我建议你查看这些项目中包含的代码,然后自己搞清楚。
此论坛和其他论坛网站上的这两个API都有很多论坛帖子。我建议你也搜索更多信息。
此外,BB开发者网站在BrowserField上有许多有用的文章,包括以下内容:
Create your first BrowserField
<强>更新强>
由于您已更新了问题,因此上述内容实际上并不相关。
如果我理解正确,通常您必须输入要验证的用户名和密码,然后才能观看视频。在您的情况下,您希望BrowserField直接转到视频链接。这不起作用,因为您尚未输入登录信息。
我对这个过程并不熟悉,但我怀疑你是否能够真正做到这一点将取决于网站使用的身份验证方法。
如果是标准的基本身份验证,那么我认为你可能没问题。在发出请求之前,您可以提供用户名和密码作为标题 - 请参阅BrowserField addStandardRequestHeaders(...)方法。抱歉,我无法提供您为基本身份验证提供标头所需的格式,但我在过去已经完成了这项工作,如果您搜索它,我认为所需的标题已有详细记录。从内存中,您需要对用户名进行Base64编码后跟一个分号,然后输入密码并将其添加为“身份验证”标题。
如果是其他身份验证,那么您需要找出什么以及是否可以向标题添加信息以允许您绕过身份验证屏幕。
如果您不熟悉HTTP标头,那么您需要进行一些研究,以了解这些是什么以及如何使用它们。
如果您无法在标题中提供身份验证信息,那么我认为您只需要让用户登录 - 或者将视频移动到更多的公共空间。
进一步更新
描述身份验证所需标头的官方文档如下:
可能在此处找到基本身份验证的更易读的摘要:
http://en.wikipedia.org/wiki/Basic_access_authentication
您通常可以使用提供的HttpProtocolConstants类来设置常量HTTP值,例如,关键是:
HttpProtocolConstants.HEADER_AUTHORIZATION
,内容将是
“基本”+'您的Base64编码的username_semicolon_password字符'