Javascript如何检测网站是在Android的股票浏览器中加载还是加载到另一个应用程序的WebView中?我想在这两种情况下运行略有不同的代码.
我最初在cstheory.stackexchange.com上提出了这个问题,但建议将其移至stats.stackexchange.com.
是否有现有算法返回两个位图图像之间的相似性度量?通过"相似",我的意思是人们会说这两幅图像是从同一张照片中改变的.例如,该算法应该说以下3个图像是相同的(原始,位置移位,收缩).
我不需要检测扭曲或翻转的图像.我也不需要检测它是否是不同方向的同一个对象.

我想使用此算法来防止我的网站上的垃圾邮件.我注意到垃圾邮件发送者懒得改变他们的垃圾邮件图像.它不仅限于面孔.我已经知道那里已经有很多很棒的面部识别算法了.垃圾邮件图像可以是从URL到足球场到裸体的任何东西.
我的网站上有一堆隐藏的图片.他们的容器DIV有style ="display:none".根据用户的操作,可以通过javascript显示一些图像.问题是打开页面时我的所有图像都被加载了.我想通过加载最终变得可见的图像来减轻服务器上的压力.我想知道是否有纯CSS方式来做到这一点.这是我目前正在做的两种hacky/complex方式.如您所见,它不是干净的代码.
<div id="hiddenDiv">
<img src="spacer.gif" />
</div>
.reveal .img {
background-image: url(flower.png);
}
$('hiddenDiv').addClassName('reveal');
Run Code Online (Sandbox Code Playgroud)
这是方法2:
<img id="flower" fakeSrc="flower.png" />
function revealImage(id) {
$('id').writeAttribute(
'src',
$('id').readAttribute('fakeSrc')
);
}
revealImage('flower');
Run Code Online (Sandbox Code Playgroud) 我的布局上有一个EditText.在用户输入一些文本并点击"完成"键后,我想从中删除闪烁的光标.我已经搜索了StackOverflow并找到了3个对我不起作用的答案.闪烁的光标仍然存在.
private class MyOnKeyListener implements OnKeyListener {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& keyCode == KeyEvent.KEYCODE_ENTER) {
// FAIL 0
MyActivity.this.findViewById(R.id.someOtherView).requestFocus();
// FAIL 1
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE
);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
// FAIL 2
MyActivity.this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
return true;
} else {
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试签署我的Android应用,以便我可以在Market中发布它.当我生成密钥库时,我收到拒绝访问错误.我该如何解决?

这就是我一直在努力做的事情:
C:\Program Files\Java\jdk1.6.0_25\bin并授予该CREATOR OWNER组对该文件夹的完全控制权.C:\Program Files\Java\jdk1.6.0_25\bin..
C:\Program Files\Java\jdk1.6.0_25\bin>keytool -genkey -v -alias company -keyalg R
SA -keysize 2048 -validity 10000 -keystore company.keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: John Smith
What is the name of your organizational unit?
[Unknown]: Android
What is the name of your organization?
[Unknown]: Company
What is the name of your …Run Code Online (Sandbox Code Playgroud) 有人告诉我一个老乡的StackOverflow用户是释放特性时,我不应该使用的getter方法:
@property(nonatmic, retain) Type* variable;
@synthesize variable;
// wrong
[self.variable release];
// right
[variable release];
Run Code Online (Sandbox Code Playgroud)
他没有详细解释原因.它们看起来和我一样.我的iOS书说,物业上的吸气器将如下所示:
- (id)variable {
return variable;
}
Run Code Online (Sandbox Code Playgroud)
所以这不是意味着[self variable],self.variable并且variable都是一样的吗?
在Javascript中,我需要在加载URL并覆盖默认行为时收到通知.例如,在iOS Safari上执行以下操作...
window.location = 'http://pageDoesNotExist.badFormatting';
Run Code Online (Sandbox Code Playgroud)
...会弹出此警告信息......

我想为这样的错误附加一个监听器并做一些事情,而不是显示一个丑陋的警报框.
当用户点击按钮时,我需要启动我的应用程序(如果已安装),否则我需要打开App Store才能下载我的应用程序.该接受的解决方案是:
// Attempt to open app
window.location = 'myApp://';
// If app fails to open, will open app store 0.5 seconds later
window.setTimeout(
function() {
window.location = 'http://itunes.apple.com/myAppId';
},
500
);
Run Code Online (Sandbox Code Playgroud)
这里的问题是,window.location当未安装应用程序时,第一个打开丑陋的警告框.然后代码将回退到App Store.当用户从App Store返回到Safari时,丑陋的警报框仍然存在.据我所知window.onerror,不会在移动Safari上启动.
在AudioServicesPlayAlertSound的文档中,它说我可以在播放声音时禁用振动:
iPhone播放指定的声音.如果用户已将"设置"应用程序配置为振铃,则也会调用振动.但是,如果您的应用程序的音频会话配置了AVAudioSessionCategoryPlayAndRecord或AVAudioSessionCategoryRecord音频会话类别,则设备不会振动.
但是,即使将我的类别设置为"播放和录制"后,我仍然感觉到我的iPhone 4S(iOS 5.1.1)出现震动.它同时响起并振动.
#import <AudioToolbox/AudioServices.h>
#import <AVFoundation/AVAudioSession.h>
NSError* error;
[[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayAndRecord
error:&error];
if (error == nil) {
AudioServicesPlayAlertSound(1000);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过AudioServicesPlaySystemSound,但结果是一样的.我想要禁用振动的原因是因为我正在制作一个应用程序,用户必须将手机远离手机并且手机不应因振动而翻倒.
我想使用Android OS提供的一些默认菜单图标.

XML将是这样的:
<item android:id="@+id/menu_refresh"
android:icon="@android:drawable/ic_menu_refresh"
android:title="@string/menu_refresh" />
Run Code Online (Sandbox Code Playgroud)
但文件说这是未经修改的.
警告:由于这些资源可以在平台版本之间更改,因此您不应使用Android平台资源ID(即android.R.drawable下的菜单图标)引用这些图标.
我认为使用默认图标的重点是因为设计确实从操作系统变为操作系统.通过使用默认图标,您的应用程序将看起来适合其运行的操作系统.那么使用默认图标有什么不好呢?似乎没有使用默认图标会伤害应用程序的外观.
目前,我的所有图片都是这样的:

HTML
<img class="photo" src="foo.png" />
Run Code Online (Sandbox Code Playgroud)
CSS
.photo {
padding: 3px;
border: 1px solid #000;
background: #fff;
width: 64px;
height: 64px;
display: block;
}
Run Code Online (Sandbox Code Playgroud)
这要求图像的纵横比始终为1:1.现在,出现了一个新的项目要求,即图像不必是1:1.相反,它们可以是高大的矩形:

在这种情况下,我只想揭示图像的最顶层:

如何使用单个<img>标签完成此操作?我知道如何使用两个标记做-只是换了img一个div,申请的3px填充到div,并把URL作为background-image的img.但我想知道如何以更干净的方式执行此操作,而无需额外的HTML标记.
android ×4
javascript ×3
css ×2
ios ×2
algorithm ×1
cocoa-touch ×1
http ×1
image ×1
iphone ×1
keytool ×1
modal-dialog ×1
objective-c ×1
overriding ×1
private-key ×1