我做了一个壳程序。 输入网址用webview显示html5网页。
网页上有2个按钮。一个是确认。一个是清除。但是清除按钮能执行。 确认按钮却不能执行。用android默认的浏览器却可以执行。有人知道这个是为什么吗?
mWebView.getSettings().setJavaScriptEnabled(true);
<uses-permission android:name="android.permission.INTERNET" />
这2个我都已经加入了。
网页上有2个按钮。一个是确认。一个是清除。但是清除按钮能执行。 确认按钮却不能执行。用android默认的浏览器却可以执行。有人知道这个是为什么吗?
mWebView.getSettings().setJavaScriptEnabled(true);
<uses-permission android:name="android.permission.INTERNET" />
这2个我都已经加入了。
<script type="text/javascript" src="lib/sencha-touch.js"></script>
<script type="text/javascript" src="src/index.js"></script>
<body>
</body>
</html>
js:
Ext.setup({
icon: 'icon.png',
tabletStartupScreen: 'tablet_startup.png',
phoneStartupScreen: 'phone_startup.png',
glossOnIcon: false,
onReady: function() { var form;
Ext.regModel('User', {
fields: [
{name: 'name', type: 'string'},
{name: 'password', type: 'string'},
{name: 'name1', type: 'string'},
{name: 'password1',type: 'string'},
{name: 'rank', type: 'string'},
{name: 'email', type: 'string'},
{name: 'email1', type: 'string'},
{name: 'color', type: 'string'},
{name: 'team', type: 'string'},
{name: 'secret', type: 'boolean'}
]
});
Ext.regModel('Ranks', {
fields: [
{name: 'rank', type: 'string'},
{name: 'title', type: 'string'}
]
});
var ranksStore = new Ext.data.JsonStore({
data : [
{ rank : 'master', title : '~20岁'},
{ rank : 'padawan', title : '21~25岁'},
{ rank : 'teacher', title : '26~30岁'},
{ rank : 'aid', title : '36~40岁'}
],
model : 'Ranks',
autoLoad : true,
autoDestroy : true
});
Ext.regModel('Professions', {
fields: [
{name: 'profession', type: 'string'},
{name: 'title', type: 'string'}
]
});
var professionStore = new Ext.data.JsonStore({
data : [
{ profession : 'master', title : '学生'},
{ profession : 'padawan', title : '自由人士'},
{ profession : 'teacher', title : '商人'},
{ profession : 'aid', title : '主妇'}
],
model : 'Professions',
autoLoad : true,
autoDestroy : true
});
Ext.regModel('Field', {
fields: [
{name: 'field', type: 'string'},
{name: 'title', type: 'string'}
]
});
var fieldStore = new Ext.data.JsonStore({
data : [
{ field : 'master', title : '网吧'},
{ field : 'padawan', title : '学校'},
{ field : 'teacher', title : '会社'},
{ field : 'aid', title : '公司'}
],
model : 'Field',
autoLoad : true,
autoDestroy : true
});
var formBase = {
scroll: 'vertical',
url : 'postUser.php',
standardSubmit : false,
instructions: 'Copyright (c) 1999-2006 ABIC Co., Ltd. All Rights Reserved.',
items: [{
xtype: 'fieldset',
title: '以下の項目をご記入の上登録ボタンを押して下さい。',
defaults: {
required: true,
labelAlign: 'center',
labelWidth: '40%'
}
},{
xtype: 'fieldset',
title: '氏名漢字(全角漢字)',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'textfield',
name: 'name',
label: '(氏)',
placeHolder: 'Tom Roy',
autoCapitalize : true,
required: true,
useClearIcon: true
}, {
xtype: 'textfield',
name: 'password',
label: '(名)',
useClearIcon: true
}
]
},
{
xtype: 'fieldset',
title: '氏名カナ(全角カナ)',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'textfield',
name: 'name1',
label: '(氏)',
placeHolder: 'Tom Roy',
autoCapitalize : true,
required: true,
useClearIcon: true
}, {
xtype: 'textfield',
name: 'password1',
label: '(名)',
useClearIcon: true
} ]
} ,{
xtype: 'fieldset',
title: '年 齢',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'selectfield',
name: 'rank',
valueField : 'rank',
displayField : 'title',
store : ranksStore
} ]
} ,{
xtype: 'fieldset',
title: '性 別', defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'radiofield',
name: 'team',
label: '女',
value : '女'
}, {
xtype: 'radiofield',
name: 'team',
label: '男',
value: '男'
} ]
} ,{
xtype: 'fieldset',
title: '職 業',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'selectfield',
name: 'rank1',
valueField : 'profession',
displayField : 'title',
store : professionStore
} ]
} ,{
xtype: 'fieldset',
title: 'メールアドレス(半角)',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'emailfield',
id: 'email',
name: 'email',
autoCapitalize : true,
required: true,
useClearIcon: true
} ]
} ,{
xtype: 'fieldset',
title: 'メールアドレス(確認用)',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'emailfield',
id: 'email1',
name: 'email1',
autoCapitalize : true,
required: true,
useClearIcon: true
} ]
} ,{
xtype: 'fieldset',
title: '株式または投信の経験', defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'radiofield',
name: 'team',
label: 'あり',
value : 'あり'
}, {
xtype: 'radiofield',
name: 'team',
label: 'なし',
value: 'なし'
} ]
} ,{
xtype: 'fieldset',
title: '現在アクセスしている場所',
defaults: {
// labelAlign: 'right'
labelWidth: '35%'
},
items: [{
xtype: 'selectfield',
name: 'field1',
valueField : 'field',
displayField : 'title',
store : fieldStore
} ]
} ,{ items: [
{ ui: 'confirm', text: 'Confirm', name:'button' },
]}
] ,
listeners : {
submit : function(form, result){
console.log('success', Ext.toArray(arguments));
},
exception : function(form, result){
console.log('failure', Ext.toArray(arguments));
}
},
dockedItems: [
{
xtype: 'toolbar',
dock: 'bottom',
items: [
{xtype: 'spacer'},
{
text: '取消',
handler: function() {
form.reset();
}
},
{
text: '登录',
ui: 'confirm',
handler: function() {
var emailname=Ext.getCmp("email").getValue();
window.localStorage.setItem("email",emailname);
if(formBase.user){
form.updateRecord(formBase.user, true);
}
var email1name = Ext.getCmp("email1");
email1name.setValue(window.localStorage.getItem("email"));
// Ext.Msg.alert('提示信息',window.localStorage.getItem("email"));
form.submit({
waitMsg : {message:'Submitting', cls : 'demos-loading'}
});
}
}
]
}
]
}; if (Ext.is.Phone) {
formBase.fullscreen = true;
} else {
Ext.apply(formBase, {
autoRender: true,
floating: true,
modal: true,
centered: true,
hideOnMaskTap: false,
height: 385,
width: 480
});
}
form = new Ext.form.FormPanel(formBase);
form.show();
}
});
localStorage.setItem("email",emailname);
var email1name = Ext.getCmp("email1");
email1name.setValue(localStorage.getItem("email"));
Ext.Msg.alert('提示信息',localStorage.getItem("email"));
form.submit({
waitMsg : {message:'Submitting', cls : 'demos-loading'}
});去掉localStorage方法。就可以执行。请问是不是 android webview 不支持 localStorage和sessionStorage呢?如果支持请问要+什么东西
具体是通过反射调用webSettings.setDatabaseEnabled(),webSettings.setDomStorageEnabled(),因为此两方法都不可见
Object[] values = new Object[]{true};
Class[] types = new Class[]{Boolean.TYPE};
invoke(WebSettings.class, webSettings, "setDatabaseEnabled", values, types);
invoke(WebSettings.class, webSettings, "setDomStorageEnabled", values, types);public Object invoke(Class class, Object obj, String methodName, Object[] args, Class[] types)
{
Method method = null;
Object result = null;
try
{
method = mClass.getMethod(methodName, types);
result = method.invoke(obj, args);
}
catch (Exception e)
{ }
return result;
}