在谷歌搜索答案时,似乎我不是唯一一个遇到似乎无法解决的问题的人.
我已经设法使用自定义WebViewClient创建WebView - 这使得我可以拥有processdialog并在无法加载URL时显示错误消息.
但这会产生JavaScript问题.我正在加载的URL有一些JavaScript,它改变了一些HTML元素的CSS样式(显示或隐藏元素)或重定向到另一个位置onclick - 或者甚至想要显示一个警告框.但是通过使用WebViewClient,这些都不起作用.
这是我加载页面的方式:
public void loadUrl(String url)
{
final ProgressDialog dialog = ProgressDialog.show(myActivity.this, "", getString(R.string.loading), true);
final WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setVerticalScrollBarEnabled(false);
myWebView.setHorizontalScrollBarEnabled(false);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Toast.makeText(myActivity.this, url, Toast.LENGTH_SHORT).show(); //Debugging purposes
if (url.endsWith(".mp4"))
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "video/mp4");
view.getContext().startActivity(intent);
}
else
{
view.loadUrl(url);
}
return true;
}
public void onPageFinished(WebView view, String url)
{
//Toast.makeText(myActivity.this, "Oh no!", Toast.LENGTH_SHORT).show(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Linux上设置Android Studio + Android SDK.我能够设置Android Studio和SDK工具以及除"Android支持存储库"之外的其他组件(下载保持失败)所以我下载android_m2repository_r30.zip并尝试将其内容(这是一个目录m2repository)放在SDK目录树中但是无法识别.
我尝试过几个路径,包括
pathtosdk/extras/android/m2repository , pathtosdk/extras/android/support/m2repository
和
pathtosdk/extras/support/m2repository
但它们都不起作用.我应该在哪里放置zip文件的内容以安装它.
我收到此错误,在我的ES日志中我使用了三个节点.
Caused by: java.lang.ArrayIndexOutOfBoundsException
[2014-09-08 13:53:56,167][WARN ][cluster.action.shard ] [Dancing Destroyer] [events][3] sending failed shard for [events][3], node[RDZy21y7SRep7n6oWT8ogg], [P], s[INITIALIZING], indexUUID [gzj1aHTnQX6XDc0SxkvxDQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[events][3] failed recovery]; nested: FlushFailedEngineException[[events][3] Flush failed]; nested: ArrayIndexOutOfBoundsException; ]]
[2014-09-08 13:53:56,357][WARN ][indices.cluster ] [Dancing Destroyer] [events][3] failed to start shard
org.elasticsearch.index.gateway.IndexShardGatewayRecoveryException: [events][3] failed recovery
at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:185)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.elasticsearch.index.engine.FlushFailedEngineException: [events][3] Flush failed
at org.elasticsearch.index.engine.internal.InternalEngine.flush(InternalEngine.java:805)
at org.elasticsearch.index.shard.service.InternalIndexShard.performRecoveryFinalization(InternalIndexShard.java:726)
at org.elasticsearch.index.gateway.local.LocalIndexShardGateway.recover(LocalIndexShardGateway.java:249)
at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:132)
... 3 more
Caused by: java.lang.ArrayIndexOutOfBoundsException …Run Code Online (Sandbox Code Playgroud) 我在GitHub上分叉了一个存储库.
然后我通过SmartGit将我的叉子克隆到我当地开发环境的一个文件夹中.另外,我将原始存储库添加为远程存储库.
现在,原始存储库已添加并更改了一些文件.在继续开发之前,我想检索这些以便我更新.
我按下SmartGit中的Pull按钮,然后在对话框中选择原始回购.SmartGit将此返回给我:
remote: Counting objects: 24, done.
remote: Total 13 (delta 7), reused 12 (delta 6)
From github.com:Original/repo
* [new branch] master -> lm/master
Run Code Online (Sandbox Code Playgroud)
但是,添加的文件和更改不会添加到我的本地存储库中.使用Git Bash手动执行此操作 - git pull original master一切都按预期工作.
为什么SmartGit没有像我期望的那样拉?
我正在尝试更新members_copy集合中的一组文档.
db.members_copy.find({"fields.shop.id": 321}).forEach(function(myDoc) {
db.members_copy.update({ "_id": myDoc._id}, { "fields.shop": [{"id": 319, "value": "Los Angeles"}] });
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
uncaught exception: can't have . in field names [fields.shop]
Run Code Online (Sandbox Code Playgroud)
我理解这个问题,但我找不到解决方案,所以我很感激我能得到的任何帮助.
我继续在Android应用程序中进行开发,现在添加了一个新活动,通过在listview项目上按下来激活该活动.
问题
我的新活动显示了我主要活动的菜单.这是相当意外的.问题是,我该如何解决这个问题?
到目前为止我做了什么
在我的主要活动中,我创建了一个菜单(menu.xml),它添加如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.refresh:
new DownloadXmlTask().execute();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
这按预期工作.
现在我开始这样的新活动:
//lv is (ofc) my listview
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
EntryObject obj = entries.get(position);
Bundle bundle = new Bundle();
bundle.putString("title", obj.title);
bundle.putString("teaser", obj.teaser);
bundle.putString("description", obj.description); …Run Code Online (Sandbox Code Playgroud) 我有以下文件,该文件基于有关如何管理后台消息(即应用程序终止或在后台时)的firebase_messaging示例。
该文件当前包含以下内容:
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'notifications.dart';
Future<dynamic> backgroundMessageHandler(Map<String, dynamic> message) async {
print("backgroundHandler: $message");
SharedPreferences prefs = await SharedPreferences.getInstance();
print(prefs.getInt('latest_id'));
}
Run Code Online (Sandbox Code Playgroud)
应用程序确实收到了通知,它在打印内容时显示,message但是当我尝试获取SharedPreferences 时,控制台向我显示以下消息并且代码执行停止:
I/flutter (17018): Unable to handle incoming background message.
I/flutter (17018): MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
Run Code Online (Sandbox Code Playgroud)
有没有可能解决这个问题?
我不确定这是否可能.我有这个按钮:
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="45px"
android:drawableTop="@drawable/buttontv"
android:layout_weight="1"
android:background="@null"
android:textColor="#ffffff"
android:textSize="9px"
android:text="TV"/>
Run Code Online (Sandbox Code Playgroud)
这个按钮有这个项目xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/tv" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/tv_pressed" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/tv_pressed" />
<item
android:drawable="@drawable/tv" />
</selector>
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我在单击按钮时使用此代码:
OnClickListener b1Listener = new OnClickListener(){
@Override
public void onClick(View v) { loadUrl("http://example.org/"); v.setPressed(true); }
};
Button b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(b1Listener);
Run Code Online (Sandbox Code Playgroud)
当我按下按钮时,我想要的是,drawableTop设置为具有@ drawable/tv_pressed属性值的项目之一 - 并保持在那里(如'这是当前活动按钮').
我尝试在onClick函数中添加v.setPressed(true)(因为这是我可以在Google上找到的所有内容),但这不起作用.
可以这样做吗?或者,有没有比我想要完成的更好的选择?
我在理解如何正确执行此操作时遇到问题.
我有以下Logstash配置:
input {
lumberjack {
port => 5000
host => "127.0.0.1"
ssl_certificate => "/etc/ssl/star_server_com.crt"
ssl_key => "/etc/ssl/server.key"
type => "somelogs"
}
}
output {
elasticsearch {
protocol => "http"
host => "es01.server.com"
}
}
Run Code Online (Sandbox Code Playgroud)
使用logstash-forwarder,我将syslog生成的haproxy.log文件推送到logstash.然后Kibana向我展示了一个_source如下所示:
{"message":"Dec 8 11:32:20 localhost haproxy[5543]: 217.116.219.53:47746 [08/Dec/2014:11:32:20.938] es_proxy es_proxy/es02.server.com 0/0/1/18/20 200 305 - - ---- 1/1/1/0/0 0/0 \"GET /_cluster/health HTTP/1.1\"","@version":"1","@timestamp":"2014-12-08T11:32:21.603Z","type":"syslog","file":"/var/log/haproxy.log","host":"haproxy.server.com","offset":"4728006"}
Run Code Online (Sandbox Code Playgroud)
现在,这必须被过滤(不知何故),我不得不承认我没有丝毫想法如何.
查看grok文档并摆弄grok调试器,我仍然没有从Logstash和Kibana中获得任何有用的东西.
我一直在扫描模式目录及其文件,我不能说我理解如何使用它们.我希望提供一个带有haproxy模式Logstash的过滤器可以匹配我的模式_source但是没有任何运气.
我当前正在尝试识别现有的 MySQL 实例,并且希望允许我的 ECS 部署能够连接到它。
迄今为止的进展如下:
const rdsPrimaryDatabase = rds.DatabaseInstance.fromDatabaseInstanceAttributes(this, 'ApplicationReadWrite', {
instanceEndpointAddress: "application_database_ewqqqrqw.eu-west-1.rds.amazonaws.com", port: 3305, securityGroups: [],
instanceIdentifier: 'application_database'
});
const securityGroup = new ec2.SecurityGroup(this, 'ApplicationEcsSecurityGroup', {
vpc: vpc,
allowAllOutbound: true,
securityGroupName: 'ApplicationEcsSecurityGroup',
})
securityGroup.connections.allowTo(rdsPrimaryDatabase, 3306, 'Primary Database')
Run Code Online (Sandbox Code Playgroud)
上述内容目前导致以下错误,与最后一行相关:
Argument of type 'IDatabaseInstance' is not assignable to parameter of type 'IConnectable'.
The types of 'connections.defaultPort' are incompatible between these types.
Run Code Online (Sandbox Code Playgroud)
这个错误是完全可以理解的,但我不确定如何克服这个问题 - 而且我不太确定我是否以正确的方式做这件事。
任何帮助表示赞赏。
我有一个网站,将公开显示大量成员的联系信息.由于垃圾邮件等原因,简单地用HTML格式将他们的电子邮件吐在页面上是一个坏主意,对吧?
所以我相信有很多方法可以解决这个问题.我已经看到了使用"name [at] blah [dot] com"的建议(这似乎并不那么安全).我想合乎逻辑的步骤是利用phpmail或swiftmailer或类似的东西?看起来他们都处于我的PHP技能的边缘,并且在我能让他们正常工作之前会让我有些头疼.
有更简单的解决方案吗?任何人都可以建议一个具有最佳的简单有效比例?
我从成员输入的SQL数据中获取信息.