• Как перенаправить ссылку на открытие в стороннее приложение?

    @elmurzaalchakov Автор вопроса
    public class FragmentWebInteractive extends Fragment {
    
        public Context my_context;
        public View rootView;
        public ProgressDialog pd;
        public MediaPlayer mp;
        public NotificationManager mNotificationManager;
        public WebView webView;
        public SwipeRefreshLayout swipeContainer;
        private SharedPreferences preferences;
        public String loader;
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
            my_context = container.getContext();
            rootView = inflater.inflate(R.layout.fragment_web, container, false);
            preferences = PreferenceManager.getDefaultSharedPreferences(my_context);
    
            String type = getArguments().getString("type");
            String url = getArguments().getString("url");
    
    
            webView = (WebView) rootView.findViewById(R.id.webView);
            webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    
            // --------------- SWIPE CONTAINER ---------------
            swipeContainer = (SwipeRefreshLayout) rootView.findViewById(R.id.swipeContainer);
            // Setup refresh listener which triggers new data loading
            swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    webView.reload();
                }
            });
            // Configure the refreshing colors
            swipeContainer.setColorSchemeResources(android.R.color.holo_blue_bright,
                    android.R.color.holo_green_light,
                    android.R.color.holo_orange_light,
                    android.R.color.holo_red_light);
    
    
            // ------------------ WEBVIEW SETTINGS  --------------------
            WebSettings webSettings = webView.getSettings();
    
            // GET PREFERENCES
            if (preferences.getBoolean("pref_webview_cache", true)) {
                enableHTML5AppCache();
            }
            if (preferences.getBoolean("pref_webview_javascript", true)) {
                webSettings.setJavaScriptEnabled(true);
                webView.addJavascriptInterface(new WebAppInterface(my_context), "WebAppInterface");
            }
    
            // -------------------- LOADER ------------------------
            pd = new ProgressDialog(my_context);
            pd.setMessage("Идет загрузка страницы...");
    
    
            loader = preferences.getString("pref_webview_loader_list", "dialog");
    
            if (loader.equals("pull")) {
                swipeContainer.setRefreshing(true);
            } else if (loader.equals("dialog")) {
                pd.show();
            } else if (loader.equals("never")) {
                Log.d("WebView", "No Loader selected");
            }
    
          webView.setWebViewClient(new MyWebViewClient());
    
    
            webView.setDownloadListener(new DownloadListener() {
                public void onDownloadStart(String url, String userAgent,
                                            String contentDisposition, String mimetype,
                                            long contentLength) {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    startActivity(i);
                }
            });
    
            webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
            webView.getSettings().setAllowFileAccess(true);
            webView.getSettings().setSupportZoom(true);
    
            // ---------------- LOADING CONTENT -----------------
            if (type.equals("file")) {
                webView.loadUrl("file:///android_asset/" + url);
            } else if (type.equals("url")) {
                webView.loadUrl(url);
            }
    
            return rootView;
    
        }
    
        public Boolean canGoBack() {
            return webView.canGoBack();
        }
    
        public void GoBack() {
            webView.goBack();
        }
    
        private void enableHTML5AppCache() {
            webView.getSettings().setDomStorageEnabled(true);
            webView.getSettings().setAppCachePath("/data/data/" + getActivity().getPackageName() + "/cache");
            webView.getSettings().setAppCacheEnabled(true);
            webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        }
     
        
    
        private class MyWebViewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
    
                if (loader.equals("pull")) {
                    swipeContainer.setRefreshing(true);
                } else if (loader.equals("dialog")) {
                    if (!pd.isShowing()) {
                        pd.show();
                    }
                } else if (loader.equals("never")) {
                    Log.d("WebView", "No Loader selected");
                }
    
                return true;
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                if (pd.isShowing()) {
                    pd.dismiss();
                }
    
                if (swipeContainer.isRefreshing()) {
                    swipeContainer.setRefreshing(false);
                }
            }
    
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                webView.loadUrl("file:///android_asset/" + getString(R.string.error_page));
            }
        }
    
        public class WebAppInterface {
            Context mContext;
    
            /**
             * Instantiate the interface and set the context
             */
            WebAppInterface(Context c) {
                mContext = c;
            }
    
            // -------------------------------- SHOW TOAST ---------------------------------------
            @JavascriptInterface
            public void showToast(String toast) {
                Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
            }
    
            // -------------------------------- START VIBRATE MP3 ---------------------------------------
            @JavascriptInterface
            public void vibrate(int milliseconds) {
                Vibrator v = (Vibrator) my_context.getSystemService(Context.VIBRATOR_SERVICE);
                // Vibrate for 500 milliseconds
                v.vibrate(milliseconds);
            }
    
            // -------------------------------- START PLAY MP3 ---------------------------------------
            @JavascriptInterface
            public void playSound() {
                mp = MediaPlayer.create(my_context, R.raw.demo);
                mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        // TODO Auto-generated method stub
                        mp.release();
                    }
    
                });
                mp.start();
            }
    
            // -------------------------------- STOP PLAY MP3 ---------------------------------------
            @JavascriptInterface
            public void stopSound() {
                if (mp.isPlaying()) {
                    mp.stop();
                }
            }
    
            // -------------------------------- CREATE NOTIFICATION ---------------------------------------
            @JavascriptInterface
            public void newNotification(String title, String message) {
                mNotificationManager = (NotificationManager) my_context.getSystemService(Context.NOTIFICATION_SERVICE);
    
                PendingIntent contentIntent = PendingIntent.getActivity(my_context, 0, new Intent(my_context, MainActivity.class), 0);
    
                NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(my_context)
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setContentTitle(title)
                        .setStyle(new NotificationCompat.BigTextStyle()
                                .bigText(message))
                        .setContentText(message);
    
                mBuilder.setContentIntent(contentIntent);
                mNotificationManager.notify(1, mBuilder.build());
            }
    
            // -------------------------------- GET DATA ACCOUNT FROM DEVICE ---------------------------------------
            @JavascriptInterface
            public void snakBar(String message) {
                Snackbar.make(rootView, message, Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        }
    
    
    }
  • Как перенаправить ссылку на открытие в стороннее приложение?

    @elmurzaalchakov Автор вопроса
    Замечу что нельзя добавить кнопку (стандартную в android studio) так как ссылки находятся в html файле внутри приложения
  • С чего начать изучение блокчейн?

    @elmurzaalchakov Автор вопроса
    Диссертация это не дипломная, не прокатит, нужно что то новое, и вот поэтому я хочу знать это хорошо настолько, чтобы я мог внести хоть и малый но вклад в развитие блокчейн в России
  • Как запрещать ввод определенных слов в строку?

    @elmurzaalchakov Автор вопроса
    Где мне прочесть реализацию такого метода?
  • Как запрещать ввод определенных слов в строку?

    @elmurzaalchakov Автор вопроса
    Тут как бы понятно, но только символы запрещаются, а список запрещенных слов большой
    <input type="text" onkeyup="var yratext=/['0-9',':']/; if(yratext.test(this.value)) alert('Введены запрещенные символы')">
  • Приложение с какой ценой больше всего покупают в маркете?

    @elmurzaalchakov Автор вопроса
    Amfore, вы не поняли, мне нужна статистика, графики, заходить и анализировать раздел, времени нет
  • Приложение с какой ценой больше всего покупают в маркете?

    @elmurzaalchakov Автор вопроса
    Eldar01, Приложение пользуется спросом, но нет предложения, вот и создали предложение на этот спрос, аналогичные есть, но функционал который необходим у других напрочь ответствует, вот и получается что продукт конкурентоспособный .
  • Приложение с какой ценой больше всего покупают в маркете?

    @elmurzaalchakov Автор вопроса
    RabraBabr, вопрос ведь стоял не в том чтобы узнать сколько стоит мое приложение)
    а Средние цены на android-приложения по каждой категории)
  • Приложение с какой ценой больше всего покупают в маркете?

    @elmurzaalchakov Автор вопроса
    конкурентов нет, нужен определенный ценовой диапазон платежеспособности, приложение на английском
  • Приложение с какой ценой больше всего покупают в маркете?

    @elmurzaalchakov Автор вопроса
    NikitaKo, В том то и дело что уникальное, подороже не купят, хотелось бы среднее значение увидеть.
    нужен определенный ценовой диапазон платежеспособности, приложение на английском
  • Как изменить размер title в ActionBar?

    @elmurzaalchakov Автор вопроса
    one pavel: первым же делом именно так и смотрел в поиске, менял кучу всего и в стилях и в Активити, без резултатно
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    automatik: Я хотел несколько языков добавить , а как в string.xml объявить не знал
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    automatik: Configuration.java из core
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    automatik: он только один у меня) ваш)
    package configuration;
    
    import com.badlogic.gdx.graphics.Color;
    
    import helpers.FlatColors;
    
    import static com.badlogic.gdx.Input.Keys.R;
    
    public class Configuration {
        public static final String GAME_NAME = "Sphere";
    
        //ADMOB IDS
        public static final String AD_UNIT_ID_BANNER = "";
        public static final String AD_UNIT_ID_INTERSTITIAL = "";
        public static final float AD_FREQUENCY = 0.6f;
    
        //IAP
        public static final boolean IAP = true;
        public static final String PRODUCT_ID = "removeads";
        public static final String ENCODED_PUBLIC_KEY = "";
    
        //GOOGLE ANALYTICS
        public static final boolean ANALYTICS = true;
        public static final String ANALYTICS_ID = "";
    
        //LEADERBOARDS IDS
        public static final String LEADERBOARD_HIGHSCORE = "";
        public static final String LEADERBOARD_GAMESPLAYED = "";
    
        //TEXTS
        public  String BEST_TEXT;
        public static final String GAMES_PLAYED_TEXT = "Games Played: ";
        public static final String SCORE_TEXT = "Score: ";
        public static final String BEST_TEXT_GAME = "Best: ";
        public static final String PAUSE_TEXT = "PAUSE";
        public static final String SHARE_MESSAGE = "Can you beat me at " + GAME_NAME + "?";
        public static final String DIALOG_TEXT = "Do you like game? " + " Вам нравится игра?";
        public static final String DIALOG_YES = "Yes!/Да!";
        public static final String DIALOG_NO = "No/Нет";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            BEST_TEXT = getString(R.string.BEST_TEXT);
            SCORE_TEXT = getString(R.string.SCORE_TEXT);
        }
        //DEBUG
        public static boolean FPS_COUNTER = false;
        public static Color FPS_COUNTER_COLOR = FlatColors.BLACK;
        public static boolean DEBUG = false;
        public static final float MUSIC_VOLUME = .8f;
    
    
    }

    b7a1994db4a9438b8541cae2acb52849.png
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    automatik: не тот скрин) вот 6f02bc9786db4a2092c07db20359c8f7.png
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    getString выделяется красным и требует импорта

    22d4843c8ad64667995f4dacb8eed913.png
  • Как локализовать java?

    @elmurzaalchakov Автор вопроса
    Очередной раз помогаешь. Премного благодарен.)
  • Как сделать Material Intro на двух языках?

    @elmurzaalchakov Автор вопроса
    automatik: А не подскажите как вставить пробел после слов а то слипаются
    <string name="EASY">EASY </string>
        <string name="download">download</string>

    То на экране выводится EASYdownload
  • Как сделать Material Intro на двух языках?

    @elmurzaalchakov Автор вопроса
    Как задать в string текст?
    <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:textColor="#ffffff"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    android:text="EASY  "/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#ffffff"
                    android:textSize="16sp"
                    android:textStyle="italic"
                    android:text="download"/>