webview遇到的问题
webview中上传图片问题
当应用横屏时,点击跳转到图库,在回来会发现webview中没有获得图片,是因为当从图库跳转回来进行了横竖屏切换,webview刷新了,所以没有图片,需要在你的AndroidManifest.xml里边添加一个
android:configChanges=”orientation|keyboardHidden|screenSize”属性
注意:这是4.0以后的
webview中按钮的点击事件
webView.addJavascriptInterface(new Object() {
> //这是我的一个切换DialogFragment的方法
> @JavascriptInterface
> public void change() {
> handler.post(new Runnable() {
> @Override
> public void run() {
> PDManager.getInstance().logout();
> mBundle.putInt(Contants.KEY_DIALOG_TYPE, Contants.FRAGMENT_TYPE_AUTO_LOGIN);
> ((PDSDKMainActivity) context).changeDialogFragment(Contants.PDDialogFragmentTag.DIALOG_FRAGMENT_TYPE_LOGIN_SPINNER,
> mBundle);
> dismiss();
> }
> });
> }
> @JavascriptInterface
> public void exit() {
> handler.post(new Runnable() {
> @Override
> public void run() {
> context.finish();
> }
> });
> }
> }, "pd");**
}
webview中上传图片的问题
> webView.setWebChromeClient(new WebChromeClient() {
>
> public void openFileChooser(ValueCallback<Uri> uploadMsg) {
> mUploadMessage = uploadMsg;
> Intent i = new Intent(Intent.ACTION_GET_CONTENT);
> i.addCategory(Intent.CATEGORY_OPENABLE);
> i.setType("image/*");
> context.startActivityForResult(Intent.createChooser(i, "File Chooser"), 1);
}
> // For Android 3.0+
> public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
> mUploadMessage = uploadMsg;
> Intent i = new Intent(Intent.ACTION_GET_CONTENT);
> i.addCategory(Intent.CATEGORY_OPENABLE);
> i.setType("*/*");
> context.startActivityForResult(Intent.createChooser(i, "File Chooser"), 1);
> }
>
> //For Android 4.1
> public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
> mUploadMessage = uploadMsg;
> Intent i = new Intent(Intent.ACTION_GET_CONTENT);
> i.addCategory(Intent.CATEGORY_OPENABLE);
> i.setType("image/*");
> context.startActivityForResult(Intent.createChooser(i, "File Chooser"), 1);
> }
> });
webview点击后跳转二级界面
> webView.setWebViewClient(new WebViewClient() {
> @Override
> public boolean shouldOverrideUrlLoading(WebView view, String url) {
> webView.loadUrl(url);
> return true;
> }
>
>
> @Override
> public void onPageFinished(WebView view, String url) {
> }
> });
设置键盘的属性
android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:
在这设置的值(除”stateUnspecified”和”adjustUnspecified”以外)将覆盖在主题中设置的值
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分