只要點點選連結,或是網頁裡的submit後就會要求開啟其他瀏覽器
(如果只有裝一種瀏覽器,就會直接由內建的瀏覽器開啟網頁,離開APP)。
我們先來看一下程式碼,載入YAHOO首頁(勿戰,因為它連結多,好示範)
import android.net.Uri; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.webkit.WebView; import com.google.android.gms.appindexing.Action; import com.google.android.gms.appindexing.AppIndex; import com.google.android.gms.common.api.GoogleApiClient; public class MainActivity extends AppCompatActivity { /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ private GoogleApiClient client; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("https://tw.yahoo.com"); } }
再來看看我說的情況,Yahoo是一個比較特別的網址,手機連上去會自己轉到手機版頁面,
所以會直接就跳出用瀏覽器開啟的要求。
所以為了以防以上所提到的幾種問題,需要加入一段程式碼,設定WebView Client來處理
WebView中發生的其他事件。
import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { WebViewClient mWebViewClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); mWebViewClient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //process redirect URL view.loadUrl(url); return true; } }; //set WebviewClient to handle click hyper link , post... webView.setWebViewClient(mWebViewClient); webView.loadUrl("https://tw.yahoo.com"); } }
看看結果
點選連結之後
參考連結:
沒有留言:
張貼留言