ตอนนี้ฉันมีแอปที่โหลด webview และการคลิกทั้งหมดจะถูกเก็บไว้ในแอป สิ่งที่ฉันต้องการจะทำคือเมื่อมีการคลิกลิงก์บางลิงก์เช่นhttp://www.google.comภายในแอปจะเป็นการเปิดเบราว์เซอร์เริ่มต้น หากใครมีไอเดียโปรดแจ้งให้เราทราบ!
ตอนนี้ฉันมีแอปที่โหลด webview และการคลิกทั้งหมดจะถูกเก็บไว้ในแอป สิ่งที่ฉันต้องการจะทำคือเมื่อมีการคลิกลิงก์บางลิงก์เช่นhttp://www.google.comภายในแอปจะเป็นการเปิดเบราว์เซอร์เริ่มต้น หากใครมีไอเดียโปรดแจ้งให้เราทราบ!
คำตอบ:
ฉันต้องทำสิ่งเดียวกันในวันนี้และฉันได้พบคำตอบที่มีประโยชน์มากใน StackOverflow ที่ฉันต้องการแบ่งปันที่นี่ในกรณีที่มีคนอื่นต้องการ
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
});
shouldOverrideUrlLoading(WebView view, String url)
เลิกใช้แล้วใน API 24 ตรวจสอบคำตอบนี้
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);
คุณไม่จำเป็นต้องใส่รหัสนี้
// webview.setWebViewClient(new WebViewClient());
คุณต้องใช้รหัส d ด้านล่างแทน
webview.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
String url2="https://whatoplay.com/";
// all links with in ur site will be open inside the webview
//links that start ur domain example(http://www.example.com/)
if (url != null && url.startsWith(url2)){
return false;
}
// all links that points outside the site will be open in a normal android browser
else
{
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
}
});
คุณสามารถใช้ Intent สำหรับสิ่งนี้:
Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("your Url"));
startActivity(browserIntent);
คุณต้องเพิ่มบรรทัดต่อไปนี้เท่านั้น
yourWebViewName.setWebViewClient(new WebViewClient());
ตรวจสอบนี้สำหรับเอกสารอย่างเป็นทางการ
คุณสามารถใช้ Intent สำหรับสิ่งนี้:
Uri uriUrl = Uri.parse("http://www.google.com/");
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);