2011-12-27 2 views
3

私は現在webviewを書いていますが、最初にtwitterページをロードします(例えば、 NHL、http://twitter.com/nhl) ご覧のとおり、NHLのツイートが見つかりますNHLツイートは ユーザーがクリックするための別のリンクを持っています。私は1秒後にリンクしている(すなわちbit.ly/ujcNZo)、私のWebView、 をクリックした場合、私のWebViewで現在のウェブビューで開くポップアップ/外部サイトのリンク

、bit.ly/ujcNZo、白 色の背景の上にTwitterのアイコンが、何も表示されませんコンテンツを読み込む必要がありますが、コンテンツは読み込まれません。

調査のいくつかの時間後、私は(ポップアップする?)それはつぶやき内のリンク(すなわちbit.ly/ujcNZo)は実際に別のウィンドウで リンクを開くという事実 と関係していると思いません リンクが投稿されている現在のページ、私はノートパソコンの ブラウザのNHLのtwitterページに行くことでこれを確認しました。

私の質問は、 1です。私は私の現在のWebViewでの外部リンク(例えばbit.ly/ ujcNZo、)の内容を読み込むことができます方法はありますか?

+0

私は私のwebviewと同じ問題を抱えています。 4ヶ月以来コメントがありませんので、この問題を解決しました – nishi

+0

残念ながら、/、あなたが解決したら教えてください... – user1118019

答えて

2

これは、WebViewClientクラスで制御できます。単にそれを拡張し、デフォルトの実装をオーバーライドして希望の設定を取得し、現在のWebviewのクライアントとして設定します。

活動

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

      // set the webViewClient to a new instance of your custom WebViewClient 

    webview.setWebViewClient(new WebActivityClient(this)); 

} 

カスタム・クライアント

/** WebViewClient class for WebView in WebActivity */ 
private class WebActivityClient extends WebViewClient { 

    public static final String TAG = "WebActivityClient"; 
    private Context context; 

    /** Constructor used to grab the context */ 
    public WebActivityClient(Context context) { 
     this.context = context; 
    } 

    /** Override to load every link within the page inside this webview instead of using 
    * android's default application 
    * #7 http://developer.android.com/resources/tutorials/views/hello-webview.html */ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

} 

は、この情報がお役に立てば幸い!

+1

こんにちはジェリーあなたの返信ありがとうございます。しかし、あなたの解決策は機能しませんでした。私のコードは、あなたがやっていることをすでにやっているのですが、私はコンストラクタのコンテキストを渡していません。実際には、あなたのコードでは、コンテキストを渡していますが、他の場所ではそれを使用していないので、それが何のためであるかわかりません。これはwebviewにWebページを読み込むことについてではなく、私はすでにそれを行うことができます。私の問題は、既存のwebviewにリンク(それはPOPUPとしてオープン)をロードしています。 – user1118019

+0

さらにテストした後、それはリンクをポップアップする(つまり別のウィンドウでコンテンツを開くハイパーリンク)、shouldOverrideUrlLoadingメソッドをトリガーしないようです...非ポップアップリンクを開くと、常にshouldOverrideUrlLoadingメソッド... – user1118019

+0

私は完全なコードを提供しませんでした.WebClientプロパティの設定方法とそのクラスの部分的な実装方法を示す行だけでした。私はそれが正しい方向にあなたを指すと考えました。助けとあなたの仕事をやり遂げることの間には細かい線があるので、shouldOverrideUrlLoadingにブレークポイントを投げると、決して呼び出されません。その場合は、テスト用のURLを入力してください。実装で何が起こるかを確認します。 – jerrylroberts

関連する問題