java - 如果当前浏览器 url 包含单词,则执行某些操作

标签 java android webview

如果我的 Webview (mainWebView) current URL 包含像“/start”这样的词,我想让它做点什么。目前正在抛出错误,有什么想法吗?

public class GatewayActivity extends Activity {
private String CurUrl;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gateway);

        WebView mainWebView = (WebView) findViewById(R.id.WebView1);

        // other Webview Data

        mainWebView.loadUrl("https://url.com/start");
            CurUrl = mainWebView.getOriginalUrl();

        if(CurUrl.indexOf("/start") > -1) {
            Toast error=Toast.makeText(this,  "test",  2000);   
            error.show();
        }
        else {
            Toast error=Toast.makeText(this,  "test failed",  2000);    
            error.show();
        }

}

编辑: 感谢您的帮助,但仍然出现这样的错误:

    08-01 17:42:40.971: E/AndroidRuntime(16741): FATAL EXCEPTION: main
08-01 17:42:40.971: E/AndroidRuntime(16741): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.XXX.XXX/com.XXX.XXX.GatewayActivity}: java.lang.NullPointerException
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.access$600(ActivityThread.java:151)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.os.Looper.loop(Looper.java:155)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.main(ActivityThread.java:5493)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at java.lang.reflect.Method.invoke(Method.java:511)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at dalvik.system.NativeStart.main(Native Method)
08-01 17:42:40.971: E/AndroidRuntime(16741): Caused by: java.lang.NullPointerException
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.XXX.XXX.GatewayActivity.onCreate(GatewayActivity.java:72)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.Activity.performCreate(Activity.java:5066)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)

但只有像上面那样包含我的 If 查询。


还是不行。

同样的错误,改为:

mainWebView.loadUrl("https://url.com");

        String cururl = null;
        cururl = mainWebView.getOriginalUrl();


        if(cururl.contains("/start")) {
            //Toast error=Toast.makeText(this, "test", Toast.LENGTH_SHORT); 
            //error.show();
        }
        else {
            //Toast error2=Toast.makeText(this,  "nope",  Toast.LENGTH_SHORT);  
            //error2.show();
        }

最佳答案

我在您的代码中看到的一个错误是 Toast.makeTest(this, "test", 2000)

的语法

您将持续时间指定为 2000,这是错误的。 Toast 持续时间支持的唯一值是 Toast.LENGTH_SHORTToast.LENGTH_LONG,它们的整数值是 0 和 1。

阅读更多相关信息 here

关于java - 如果当前浏览器 url 包含单词,则执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996218/

相关文章:

android - 单击另一个项目/小部件展开/打开微调器?

android - Webview 无法正确显示 Facebook URL 的内容

java - Java 静态方法没有 RMI

java - 将文件名放在括号内

java - 使用 Date 与 datanucleus 和应用程序引擎 (GAE Java) 进行类转换异常

android - 如果视频存储在 sdcard1 的文件夹中,我如何在 android 上播放视频?

java - 使用 Intent 只是发送数据而不移动到不同的类/Activity

javascript - 验证 AJAX 帖子上的表单

android: Web Console(24359): Uncaught SyntaxError: Unexpected token if at about:blank:334

ios - 如何使用 SWIFT 显示多文档 PDF 页面的单页