>source

프레젠테이션의 URL이 있고 이것을 android의 webview에 표시하고 싶습니다. 아래 코드를 시도했지만 Google 드라이브 앱에서 리디렉션 중입니다.

String url1 = "https://docs.google.com/presentation/d/1nL5yO1HX_";

내 Webiew 코드는 다음과 같습니다 :

WebView mywebview = findViewById(R.id.webview);
WebSettings settings = mywebview.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setBuiltInZoomControls(true);
settings.setAllowFileAccess(true);
settings.setJavaScriptEnabled(true);
mywebview.loadUrl(url1);


  • 답변 # 1

    setWebViewClient 및 getHitTestResult를 사용하십시오. 열 URL을 가져온 다음 ppt 파일인지 여부를 확인하는 데 사용됩니다.

    첫번째 XML 파일 :-

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"></WebView>
    
    

    주요 활동 :-

           webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String request)
            {
                try{
                if(webView.getHitTestResult().getExtra().endsWith(".pptx"))
                {
                    try
                    {
                        Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                        intent.putExtra("url",webView.getHitTestResult().getExtra());
                        startActivity(intent);
                        return true;
                    }
                    catch (Exception e)
                    {
                        Toast.makeText(MainActivity.this, e+"", Toast.LENGTH_SHORT).show();
                    }
                    return true;
                }
                else
                {
                    webView.loadUrl(request);
                    return true;
                }}
                catch (Exception e)
                {
                    return false;
                }
            }
    
    

    그런 다음 새로운 활동에서 의도의 가치를 얻는다 :-

    public class Main2Activity extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Intent intent=getIntent();
        String t=intent.getStringExtra("url");
        String s="http://docs.google.com/viewer?url=";
        s=s.concat(t);
        webView=(WebView)findViewById(R.id.webView);
        webView.loadUrl(s);
    }
    @Override
    protected void onResume()
    {
        this.finish();
        super.onResume();
    }
    
    

    두번째 XML 파일 :-

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

  • 답변 # 2

    웹 클라이언트를 사용했는데 저에게 효과적이었습니다

    public class WebClient extends WebViewClient{
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                view.loadUrl(url);
                return true;
            }
        }
    
    

  • 이전 jquery - 수량 입력 변경 - 이전 가치 포착
  • 다음 android - 작업 관리자가 21 API에 JobScheduler를 사용하지 않는 이유