Как открыть новую активность с html в студии Android - PullRequest
0 голосов
/ 10 июля 2020

Мне нужно открыть активность сканера штрих-кода на странице html. Когда я пытаюсь нажать на изображение штрих-кода, появляется предупреждение. У меня есть MainActivity. java и BarcodeActivity. java классы.

Предупреждение при нажатии на изображение штрих-кода:

I/chromium: [INFO:CONSOLE(7027)] "Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080", source: file:///android_asset/js/framework7.js (7027)

MainActivity. java это

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    WebView webView =(WebView)findViewById(R.id.web);
    webView.setWebViewClient(new MyBrowser());
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    webView.loadUrl("file:////android_asset/index.html");
   
}
private class MyBrowser extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().contains("activity.barcode://")) {
            startActivity(new Intent(MainActivity.this,BarcodeActivity.class));
            return true;
        }
        return false;
    }

}

AndroidManifest. xml

<activity android:name=".BarcodeActivity" >
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSER" />
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="activity.barcode" />
        </intent-filter>
    </activity>
</application>

index. html

<li class="menuicon"><a href="activity.barcode://"><img src="images/icons/black/barcode.png" alt="" title="" /></a></li>

1 Ответ

0 голосов
/ 10 июля 2020

возможно, что он никогда не входит в условие if. getHost () может просто вернуть имя хоста после ": //", попробуйте вызвать getProtocol ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...