5

これが私のコードです:

public class MainActivity extends Activity {

@SuppressLint("SetJavaScriptEnabled") @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView mywebview = (WebView) findViewById(R.id.webview);
    mywebview.loadUrl("http://www.shufflemylife.com/shuffle");
    WebSettings webSettings = mywebview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mywebview.setWebViewClient(new WebViewClient());

}

class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains("/shuffle")){
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(url));
            startActivity(i);
            }
        return true;

        }
    }
    }

基本的に、「/ shuffle」を含むURLをWebView内にロードし、その他のURLを外部ブラウザーで開く必要があります。それは実行可能ですか?私はこれを達成するのにどれくらい近づいていますか?

助けてくれてありがとう!

4

2 に答える 2

4

明確にするために、これはあなたがあなたのshouldOverrideUrlLoadingメソッドを書くべき方法です:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.contains("/shuffle")) {
        mWebView.loadUrl(url);
        return false;
    } else {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(url));
        startActivity(intent);
        return true;
    }
}
于 2013-07-25T01:11:46.643 に答える
3

それは実行可能ですか?

はい。

私はこれを達成するのにどれくらい近づいていますか?

閉じますが、後方に移動します。aのデフォルトの動作はWebView、外部ブラウザにリンクを表示することです。したがって、の場合は、リンクを内部に保持するurl.contains("/shuffle")ように呼び出し、その場合は戻ります。これが通常処理したいURLの場合は、を返します。loadUrl()WebViewtruefalse

于 2013-02-02T20:02:25.527 に答える