我正在加載使用離子在android中的webview內創建www文件夾。在webview我使用iframe加載一些html.Everything工作正常,但無法攔截iframe中的超鏈接,無法檢查它是否完全加載。Android的 - 如何攔截iframe(webview)內的鏈接,並檢查它是否完全加載
這裏是我的活動代碼,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = MainActivity.this;
webview=(WebView) findViewById(R.id.webView1);
webViewConfiguration();
setWebViewListner();
webview.setBackgroundColor(0x00000000);
}
private void setWebViewListner() {
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("tel://")) {
Tel=url.replace("//", "");
Log.d("*** url with removed // ***",Tel);
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(Tel));
startActivity(intent);
return true;
}
else
return false;
}
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript:invokeController("+true+")");
Log.d("*** on page finished ***",url);
}
});
}
private void webViewConfiguration() {
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webview.addJavascriptInterface(this, "javaScriptToJava");
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
}
webview.loadUrl(Url);
}
@JavascriptInterface
public void nativeBackButton() {
finish();
}
@JavascriptInterface
public void keyBoardClose(){
if (imm!=null) {
imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
webview.loadUrl("javascript:callBackIonic()");
return true;
}
}
return super.onKeyDown(keyCode, event);
}
}
shouldOverrideUrlLoading是越來越觸發,如果裏面的iframe在href鏈接電話://../../或文件:///android_asset/../。 ./但它不會被觸發,如果它是一個http請求。
我想爲iframe中的每個鏈接按下一個加載器。
任何人都可以說如果有一種方法來處理webview中的iframe中的http超鏈接。
編輯: 我使用ng-bind-html/ng-include替換了我的html中的iframe,並且我能夠攔截鏈接和onPageFinished函數。但是如果我使用了樣式和其他一些東西,使用ng-bind-html/ng-include。如何讓它在iframe的幫助下工作。爲什麼在webview中使用iframe不會調用shouldoverrideurlloading。