Android는 스캔 기능을 구현하기 위해 android를 호출하는 js를 구현합니다.

다음은 코드 스캔 js호출을 구현하는 코드입니다 .androidandroid java

public class MainActivity extends Activity {
    
    

    private static final int REQUEST_QR_CODE = 1;

    private WebView webView;

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

        webView = findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.addJavascriptInterface(new JsInterface(), "Android");

        webView.loadUrl("file:///android_asset/index.html");
    }

    class JsInterface {
    
    
        @JavascriptInterface
        public void scanQRCode() {
    
    
            Intent intent = new Intent(MainActivity.this, QRCodeScannerActivity.class);
            startActivityForResult(intent, REQUEST_QR_CODE);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    
    
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_QR_CODE && resultCode == RESULT_OK && data != null) {
    
    
            String result = data.getStringExtra("result");
            webView.loadUrl("javascript:showQRCodeResult('" + result + "')");
        }
    }
}

위의 코드에서 웹 페이지 표시 및 JS 코드 실행을 담당하는 WebView를 만들었습니다. Android를 호출하는 JS의 로직을 처리하는 데 사용되는 JsInterface 클래스를 추가했습니다. JsInterface 클래스에서 코드 스캐닝 인터페이스를 열기 위해 JS에서 호출하는 scanQRCode 메서드를 노출합니다. 코드 스캐닝 인터페이스에서 코드 스캐닝 결과를 얻은 다음 결과를 이전 WebView로 다시 보내야 합니다. 구체적인 구현은 onActivityResult 메서드의 로직을 참조하세요.

여기서 우리는 코드 스캐닝 인터페이스의 코드가 구현되었다고 가정하고 코드의 이 부분은 이 예에 포함되지 않습니다.

추천

출처blog.csdn.net/klylove/article/details/130597213