امپراطور رباتها
2 سال پیش توسط امپراطور رباتها مطرح شد
2 پاسخ

کار نکردن انتخاب فایل در وب ویو

دکمه انتخاب فایل کار نمیکنه تصویر

این یک برنامه وب ویو هست که جاوااسکریپتش کار میکنه دیالوگ های جاوا اسکریپت(alert و confirm و prompt) هم کار میکنه اما دکمه انتخاب فایل که توی تصویر موجود هست کار نمیکنه میشه راهنمایی کنی چطور وقتی روی دکمه کلیک شد دکمه کار بکنه


ثبت پرسش جدید
آرین حیدری
تخصص : طراح رابط کاربری، برنامه‌نویس
@arianhdr 2 سال پیش مطرح شد
0

سلام و وقتتون به خیر
با یه مرورگر دیگه امتحان کنین اگه نشد هم کدتونو به اشتراک بذارین لطفاً
در همین حد بسنده می کنم
التماس دعا
و من الله توفیق


امپراطور رباتها
تخصص : برنامه نویس
@empireBot 2 سال پیش مطرح شد
0

من میخام که توی برنامه وب ویو که دارم این باگ رو برطرف کنم
اینم کد برنامه

package com.mycompany.myapp6;

import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.app.*;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.*;
import android.widget.*;
import android.content.*;
import android.net.wifi.*;
import android.view.View.*;
import android.view.*;
import android.widget.TextView;
import android.widget.Button;
import android.widget.EditText;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.webkit.JsResult;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.view.KeyEvent;
import android.webkit.WebResourceRequest;
import android.app.ActionBar;
import android.*;
import android.view.Window;
import java.util.*;
import java.text.*;
import android.net.*;
import android.webkit.*;public class MainActivity extends Activity 
{
    public class Globals extends Application {
        public String myText = "text";
    }
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getActionBar().hide();
        findViewById(R.id.mainButton1).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Vibrator vib = (Vibrator) getSystemService(MainActivity.VIBRATOR_SERVICE);
                long milliseconds = 100;
                vib.vibrate(milliseconds);
                WebView webView = (WebView)findViewById(R.id.mainWebView);
                webView.getSettings().setJavaScriptEnabled(true);
                webView.setWebChromeClient(new WebChromeClient(){
                    public void onProgressChanged(WebView view,int progress){
                        String loading = "Loading "+progress+"%";
                        Toast.makeText(MainActivity.this,loading, Toast.LENGTH_SHORT).show();
                    };
                        @Override
                        public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
                            String newTitle = "دیالوگ جاوااسکریپت از  نوع alert(هشدار)(اخطار) در "+view.getUrl();

                            AlertDialog.Builder alb = new AlertDialog.Builder(MainActivity.this);
                            alb.setTitle(newTitle).setMessage(message).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        result.confirm();
                                    }
                                });
                            alb.setCancelable(false);
                            alb.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        result.cancel();
                                    }
                                });
                            alb.setNeutralButton("خروج", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        finish();
                                    }
                                });
                            alb.create();
                            alb.show();
                            return true;
                            // return super.onJsAlert(view, url, message, result);
                        }

                        @Override
                        public boolean onJsConfirm(WebView view, String url,String message, final JsResult result) {
                        String newTitle = "دیالوگ جاوااسکریپت از نوع confirm(تایید) در "+view.getUrl();
                            Globals mas = new Globals();
                            mas.myText = message;
                            AlertDialog.Builder alrbui = new AlertDialog.Builder(MainActivity.this);
                            alrbui.setTitle(newTitle);
                            alrbui.setMessage(message);
                            alrbui.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        result.confirm();
                                    }
                            });
                            alrbui.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        result.cancel();
                                    }
                                });
                            alrbui.setNeutralButton("خروج",new DialogInterface.OnClickListener(){
                                    @Override
                                    public void onClick(DialogInterface dialogInterface,int i){
                                        finish();
                                    }
                                });
                            alrbui.setCancelable(false);
                            alrbui.create();
                            alrbui.show();
                            return true;

                            // return super.onJsConfirm(view, url, message, result);
                        }
                });
                webView.getSettings().setAllowFileAccess(true);
                webView.getSettings().setAllowContentAccess(true);
                webView.getSettings().setAllowFileAccessFromFileURLs(true);
                webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
                webView.setWebViewClient(new WebViewClient());
                webView.getSettings().setDomStorageEnabled(true);
                webView.getSettings().setLoadWithOverviewMode(true);
                webView.getSettings().setUseWideViewPort(true);
                EditText x = findViewById(R.id.mainEditText1);
                webView.loadData(x.getText().toString(),"","utf8");
            }
        });
    };
}

فایل xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal">

        <Button
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button"
            android:id="@+id/mainButton1"/>

        <EditText
            android:layout_height="match_parent"
            android:inputType="textMultiLine"
            android:layout_width="match_parent"
            android:ems="10"
            android:id="@+id/mainEditText1"/>

    </LinearLayout>

    <WebView
        android:id="@+id/mainWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

کد شناسنامه برنامه :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompany.myapp6" >

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:resizeableActivity = "true">
        <activity
            android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

اینو با AIDE ساختم منتشرش نکردم چون برای تست هست که بعدا روی برنامه های وب ویو دیگه پیاده سازی کنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام