如何使用我的应用程序继续Internet链接操作?

时间:2015-11-16 19:46:06

标签: android webview

我有一个webview。我的问题是,当用户点击webview中的链接时,如何继续使用我的应用?

当用户点击链接时,会出现以下对话框:

continue with dialogbox

如何避免使用此对话框并继续使用我的应用程序?

WebView代码:

WebView webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl(url);

编辑(MYActivityİn测试项目)

package com.mycompany.myapp5;

import android.app.*;
import android.os.*;
import android.webkit.*;

public class MainActivity extends Activity 
{
WebView view;
String url="http://google.com";

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    view.setWebViewClient(new WebViewClient()
{
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return false;
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

This SO answer正是您所需要的。

我们的想法是将WebViewClient设置为WebView并覆盖如下的shouldOverrideUrlLoading方法:

int BSInsert(bStromPtr *tree, char* key, TSymbol symbol){

    int res;

if(*tree  == NULL){
    *tree = malloc(sizeof(struct bStrom));
    if(*tree == NULL){
        return ERR_CODE_OTH;
    }

    (*tree)->data = malloc(sizeof(struct symbol));
        if((*tree)->data == NULL){
            return ERR_CODE_OTH;
        }

        (*tree)->key = (char *)malloc(sizeof(char) * 2);
        if((*tree)->key == NULL){
            return ERR_CODE_OTH;
        }

    (*tree)->lptr = malloc(sizeof(struct bStrom));  //treba to?
            if((*tree)->lptr == NULL){
            return ERR_CODE_OTH;
        }
    (*tree)->rptr = malloc(sizeof(struct bStrom));
            if((*tree)->rptr == NULL){
            return ERR_CODE_OTH;
        }

        (*tree)->lptr = NULL;
        (*tree)->rptr = NULL;
        (*tree)->key = key;
        (*tree)->data->type = symbol->type;   
        (*tree)->data->name = symbol->name;
        (*tree)->data->isFunction = symbol->isFunction;   
        //(*tree)->data->type = symbol->isDeclared;   


}


//printf("%d  \n", &(*tree)->key );
res= strcmp( *(tree->key), key );


if(res < 0){

         BSInsert(&((*tree)->rptr),key, symbol);
    }
    else if(res > 0){

         BSInsert(&((*tree)->lptr),key, symbol);
    }
    else{

        (*tree)->data = symbol;
    }
return ERR_code_succ;
}

我希望这可以帮到你!

以下是正在运行的测试项目的完整代码。

xml:

webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });

活动中的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.test.myapplication.MainActivity">

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></WebView>
</RelativeLayout>

这在4.4设备中工作正常。如果您还有问题,请试试这个并告诉我。