Начать новое действие на веб-странице html недоступно - PullRequest
0 голосов
/ 07 ноября 2018

Я нахожу эту тему, и я сделал то же самое на здесь . Я нажимаю кнопку, и она остается браузером. Это говорит: «Навигация: // Веб-страница OpenNativeScreen недоступна». Она должна начать действовать .Но это не так. Так что это не переключиться на деятельность.

public class acilisbir extends AppCompatActivity {


    WebView myBrowser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_acilisbir);







        myBrowser = (WebView) findViewById(R.id.anasayfagetir);
        myBrowser.setWebViewClient(new MyBrowser());
        myBrowser.getSettings().setJavaScriptEnabled(true);
        myBrowser.loadUrl("file:///android_asset/anasayfa.html");







    }


    private class MyBrowser extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.equals("Navigation://OpenNativeScreen")) {
                startActivity(new Intent(acilisbir.this,AnaEkran.class));
                finish();
                return true;
            }
            return false;
        }
    }

}

И HTML-страница. Я использую кнопку и ввод для теста, но вместо этого я буду использовать изображение.

<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" charset="utf-8" src="jquery-2.0.0.min.js"></script>
<script type="text/javascript" charset="utf-8" src="quantize.js"></script>
    <meta charset="UTF-8">

    <title>Full Page Background Image | Progressive</title>

    <style>
        * { margin: 0; padding: 0; }

        html { 
            background: url(anasayfabuton/bgorg.png) no-repeat center center fixed; 
            -webkit-background-size: cover;
            -moz-background-size: cover;
            -o-background-size: cover;
            background-size: cover;
        }

        #page-wrap { width: 400px; margin: 50px auto; padding: 20px; background: white; -moz-box-shadow: 0 0 20px black; -webkit-box-shadow: 0 0 20px black; box-shadow: 0 0 20px black; }
        p { font: 15px/2 Georgia, Serif; margin: 0 0 30px 0; text-indent: 40px; }
    </style>
</head>

<body>



 <style type="text/css" style="display: none !important;">
    * {
        margin: 0;
        padding: 0;
    }
    body {
        overflow-x: hidden;
    }
    #demo-top-bar {
        text-align: left;
        background: #222;
        position: relative;
        zoom: 1;
        width: 100% !important;
        z-index: 6000;
        padding: 20px 0 20px;
    }
    #demo-bar-inside {
        width: 960px;
        margin: 0 auto;
        position: relative;
        overflow: hidden;
    }
    #demo-bar-buttons {
        padding-top: 10px;
        float: right;
    }
    #demo-bar-buttons a {
        font-size: 12px;
        margin-left: 20px;
        color: white;
        margin: 2px 0;
        text-decoration: none;
        font: 14px "Lucida Grande", Sans-Serif !important;
    }
    #demo-bar-buttons a:hover,
    #demo-bar-buttons a:focus {
        text-decoration: underline;
    }
    #demo-bar-badge {
        display: inline-block;
        width: 302px;
        padding: 0 !important;
        margin: 0 !important;
        background-color: transparent !important;
    }
    #demo-bar-badge a {
        display: block;
        width: 100%;
        height: 38px;
        border-radius: 0;
        bottom: auto;
        margin: 0;
        background: url(/images/examples-logo.png) no-repeat;
        background-size: 100%;
        overflow: hidden;
        text-indent: -9999px;
    }
    #demo-bar-badge:before, #demo-bar-badge:after {
        display: none !important;
    }

    .image_left1{
            margin-top: 50%;
            width: 40%;
            float: left;
            margin-left: 3%;
        }

    .image_left2{
            margin-top: 50%;
            width: 40%;
            float: right;
            margin-right: 3%;
        }   

    .image_left3{
            margin-top: 15%;
            width: 40%;
            float: left;
            margin-left: 3%;
        }

    .image_left4{
            margin-top: 15%;
            width: 40%;
            float: right;
            margin-right: 3%;
        }


input[type=test] {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 16px 32px;
    text-decoration: none;
    margin: 4px 2px;
    cursor: pointer;
    margin-top: 10%;
}

@media only screen 
  and (min-device-width: 728px) 
  and (max-device-width: 1024px) 
   {

    .image_left1{
            margin-top: 10%;
            width: 40%;
            float: left;
            margin-left: 3%;
        }

    .image_left2{
            margin-top: 10%;
            width: 40%;
            float: right;
            margin-right: 3%;
        }

}



</style>
<INPUT TYPE="test" value="Test" onClick="window.location='Navigation://OpenNativeScreen'">
<img class="image_left1" src="anasayfabuton/1tr.png">
<img class="image_left2" src="anasayfabuton/2tr.png">
<img class="image_left3" src="anasayfabuton/3tr.png">
<img class="image_left4" src="anasayfabuton/4tr.png">



</body></html>

ОБНОВЛЕНИЕ ДЛЯ 2

Я бы добавил свой манифест

<activity android:name="Buy" >
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="activity_buy" />
            </intent-filter>
        </activity>

Используйте этот код в действии

private class MyBrowser extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.equalsIgnoreCase("Navigation://OpenNativeScreen")) {
                startActivity(new Intent(acilisbir.this,AnaEkran.class));
                finish();
                return true;
            }else if (url.equalsIgnoreCase("activity_buy://Buy")) {
                startActivity(new Intent(acilisbir.this,Buy.class));
                finish();
                return true;
            }
            return false;
        }
    }

и HTML

<INPUT TYPE="buycr" value="Buycr" onClick="window.location='activity_buy://Buy'">

1 Ответ

0 голосов
/ 08 ноября 2018

Я скопировал ваш код в новый проект и внес небольшие поправки для его сборки. Затем я добавил точку останова в строку сравнения строк и запустился в режиме отладки. Когда достигается точка останова, я вижу, что URL фактически равен "navigation://OpenNativeScreen" со строчной буквой n. Смотрите скриншот ниже:

Android studio screenshot on string compare breakpoint

Одним из возможных решений было бы использование метода url.equalsIgnoreCase, чтобы случай сравнивался. Полная строка будет:

if (url.equalsIgnoreCase("Navigation://OpenNativeScreen")) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...