我有一个webview。我的问题是,当用户点击webview中的链接时,如何继续使用我的应用?
当用户点击链接时,会出现以下对话框:
如何避免使用此对话框并继续使用我的应用程序?
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;
}
});
}
}
答案 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设备中工作正常。如果您还有问题,请试试这个并告诉我。