- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 WebView 中显示 protected 博客。该博客在 Google 的 blogger.com 上
用户名和密码由应用程序本身提供(因此用户无需输入任何内容):
我正在使用以下代码,但它不起作用,因为它要求用户输入其用户名和密码(仅在第一个日志中,然后被保存并且工作正常)?怎么了 ?我应该将什么用作“领域”:
webview.setHttpAuthUsernamePassword(URL_WebView, "", getString(R.string.username), getString(R.string.password));
到目前为止的全部代码:
public class Main extends Activity {
/** Called when the activity is first created. */
String URL_WebView = "http://myblog.blogspot.com/";
public static Context mContext;
static SharedPreferences prefs;
static int log_number;
Boolean terms_agreed;
//GoogleAnalyticsTracker tracker;
//static String analytics_tracker = "UA-11967031-29";
WebView webview;
private static final FrameLayout.LayoutParams ZOOM_PARAMS = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
this.webview = (WebView)findViewById(R.id.webkitWebView1);
mContext = this;
reading_the_prefs();
log_number = log_number + 1;
if (log_number >= 2) {
if ((!terms_agreed)){
TermsDialog();
}
}
/*
tracker = GoogleAnalyticsTracker.getInstance();
tracker.start(analytics_tracker, this);
tracker.trackPageView("/Main");
*/
// adding the zoom controls ...
FrameLayout mContentView = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content);
final View zoom = this.webview.getZoomControls();
mContentView.addView(zoom, ZOOM_PARAMS);
zoom.setVisibility(View.GONE);
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setWebViewClient(new MyWebViewClient ());
//webview.savePassword(URL_WebView, getString(R.string.username), getString(R.string.password));
webview.setHttpAuthUsernamePassword(URL_WebView, "", getString(R.string.username), getString(R.string.password));
webview.loadUrl(URL_WebView);
}
//======================================================================================
private class MyWebViewClient extends WebViewClient {
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
handler.proceed(getString(R.string.username), getString(R.string.password));
Log.i("Hub","Host ="+host+" with realm ="+realm);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.e("Hub", "Error: " + description);
Toast.makeText(Main.this, "Oh no! " + description, Toast.LENGTH_LONG).show();
}
}
//======================================================================================
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 99, 3, "Exit").setIcon(android.R.drawable.ic_menu_delete);
menu.add(0, 999, 2, "Terms of Service").setIcon(android.R.drawable.ic_menu_agenda);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 99:
finish();
break;
case 999:
//tracker.trackPageView("/TERMS_OF_SERVICE");
TermsDialog();
break;
}
return super.onOptionsItemSelected(item);
}
// =================================================================================
public void TermsDialog(){
AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setIcon(R.drawable.icon);
// custom Title - that's the way I found to center it !
TextView title = new TextView(mContext);
title.setText(R.string.TermsDialog_Title);
title.setBackgroundColor(Color.BLACK);
title.setPadding(10, 10, 10,10);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setTextSize(20);
// to center the TITLE :
ad.setCustomTitle(title);
ad.setView(LayoutInflater.from(this).inflate(R.layout.terms_dialog,null));
ad.setPositiveButton(R.string.TermsDialog_Yes,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
//OK, save accepted Terms and Service into the Prefs.
terms_agreed = true;
//tracker.trackPageView("/Terms_agreed");
saving_the_prefs();
}
}
);
ad.setNegativeButton(R.string.TermsDialog_No,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
terms_agreed = false;
//tracker.trackPageView("/Terms_NOT_agreed");
saving_the_prefs();
finish();
}
}
);
ad.setCancelable(false);
ad.show();
}
// =================================================================================
private void reading_the_prefs() {
prefs = getSharedPreferences("Market_Wrap", 0);
log_number = prefs.getInt("log_number" , 0);
terms_agreed = prefs.getBoolean("terms", false);
Log.i("Hub", "log_number="+log_number);
Log.i("Hub", "terms_agreed="+terms_agreed);
}
// =================================================================================
public void saving_the_prefs() {
prefs = getSharedPreferences("Market_Wrap", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("log_number", log_number);
editor.putBoolean("terms", terms_agreed);
editor.commit();
}
// =================================================================================
@Override
protected void onPause() {
super.onPause();
//tracker.dispatch();
//tracker.stop();
saving_the_prefs();
}
// =================================================================================
我已经尝试听从建议 here但它看起来像
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
handler.proceed(getString(R.string.username), getString(R.string.password));
Log.i("Hub","Host ="+host+" with realm ="+realm);
}
无论出于何种原因,永远不会被触发(在 MyWebViewClient 中)?
编辑:也许我需要在 Android 上实现客户端 OAuth?
喜欢here
最佳答案
来自 setHttpAuthUsernamePassword ,您需要传入站点的主机:所以如果您正在访问(例如)http://www.google.com使用您的代码和领域中的用户名和密码 Protected
,您可以这样做
webview.setHttpAuthUsernamePassword("www.google.com", "Protected", getString(R.string.username), getString(R.string.password));
您可以通过在浏览器中查看已发布的领域来获取领域:例如,在 Firefox 中,如果您打开 http://tools.dynamicdrive.com/password/example/您会在标题中看到以下文本:http://tools.dynamicdrive.com 正在请求用户名和密码| .该网站说:“限制区域。在这种情况下,领域是限制区域。
关于android - 如何将 protected 博客显示到 WebView 中(setHttpAuthUsernamePassword),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639447/
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我基本上有三个环境用于在我的主站点上工作。我的计算机上有我的本地一个,而我的网络服务器上有开发和实时的。我在本地环境中使用 Wordpress 开发了该站点,并希望通过 svn 使所有内容保持最新。
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有 gatsby 博客,在我创建新帖子并构建静态文件后,将它们上传到我的主机上,每个用户都必须在我的博客上进行硬刷新才能看到更改。 上传新版本后如何在下次访问时自动刷新? 最佳答案 这种行为的另一个
我需要博客链接,以及涵盖 GroovyFx 的教程。我试过在谷歌上搜索它,我没有得到任何有用的教程。我需要从上到下全面覆盖 GroovyFx! 提前致谢。 最佳答案 您的意思是您想要全面覆盖的博客条目
我最近更换了计算机,并且不小心删除了所有源(Markdown 文件等)的本地版本。不管我怎么想,这一切都在 Github(我使用 GitHub 页面)中,所以我可以从那里开始。但是,我已经进入 Git
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
标题几乎说明了一切。博客在同一个帐户下。 Asked this question on Quora几乎没有回应。 我正在寻找一个网络应用程序,它可以自动执行该过程。如果那里还没有任何东西,我准备使用
在浏览一些关于 Java 反射和泛型的 Jakov Jenkov 博客时,我发现了以下段落: When runtime inspecting a parameterizable type itself
我进退两难:我已经做了rake deploy我的 Octopress 博客运行良好。文档说我必须再做 3 个步骤: git add . git commit -m 'message' git push
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我尝试了几种方法,但似乎无法完成其中的每一部分。我为某人制作了一个 wordpress 博客,她对此很满意,但最近想要更改标题。我把它放宽了,她想要它装箱/居中。基本上,标题包含 Logo 、导航和左
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已经尝试在我的网络服务器上安装 Ghost.io 有一段时间了。我有一个带有 Centos 6 和 Cpanel 的 VPS。 今天我在 http://www.allaboutghost.com/o
这里我有一个网站,tinywolf.uk,我目前正在使用它。主页是一个独立于 wordpress 的静态网站,但网站的博客部分 http://www.tinywolf.uk/blog将由 wordpr
我是 Django Web 开发的半菜鸟。我已经成功添加了一个文件字段,实际上允许我将图像上传到帖子中(图像显示在帖子列表和帖子详细信息中),但是如果我想在帖子中添加多个图像该怎么办? 我目前正在撰写
我特别想了解 Web 开发和 Windows azure。我认为为个人网站创建一个博客应用程序将是一个很好且简单的项目来实现这一目标。 有谁知道演练/教程可以帮助我走上这条路,或者更好地涵盖这个确切的
我遇到了一个小问题,因为我目前正在尝试以编程方式同时登录两个 wordpress 博客。我有一个自定义登录页面,必须为两个 wordpress 博客创建 session 。一个博客工作得很好,但因为我
我是一名优秀的程序员,十分优秀!