首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载XWalkView中的所有链接或故意打开a

加载XWalkView中的所有链接或故意打开a
EN

Stack Overflow用户
提问于 2015-04-16 17:22:14
回答 2查看 2.1K关注 0票数 1

我正在使用XWalkView加载一个页面。

我想知道是否有可能拦截页面中链接的加载请求,并将其加载到一个新的意图弹出或停止加载链接。

代码语言:javascript
复制
    public WebResourceResponse shouldInterceptLoadRequest(XWalkView view,
                                                          String url) {
        Log.d("shouldInterceptLoadRequ","shouldInterceptLoadRequest " + url);
        return super.shouldInterceptLoadRequest(view, url);
    }

当页面有链接时,不会调用这一点。当页面有链接时,我会看到一个android默认弹出,请求浏览器打开链接。

我需要的是打开谷歌地图应用程序,如果网址是谷歌地图的位置。

我确实尝试过使用默认的android WebView,但是html5支持太弱了。

编辑的

我应该用

代码语言:javascript
复制
public boolean shouldOverrideUrlLoading(XWalkView view, String url)

但是看起来它有一个带有外部链接的bug:

https://crosswalk-project.org/jira/browse/XWALK-3606

编辑2

当链接有target="_blank“时,问题就会发生。

EN

回答 2

Stack Overflow用户

发布于 2015-05-15 12:36:53

代码语言:javascript
复制
public class MyActivity extends Activity {
private XWalkView xWalkWebView;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity_xml);
    xWalkWebView = (XWalkView)findViewById(R.id.xwalkView);
    xWalkWebView.addJavascriptInterface(new WebAppInterface(), "Android");
    xWalkWebView.load(url_your_want_to_load,null);
}

public class WebAppInterface {
    @org.xwalk.core.JavascriptInterface
    public void callFunction(){
        // Do your Android Stuff here
    }
}

现在调用页面中的函数为:- Android.callFunction();

票数 0
EN

Stack Overflow用户

发布于 2015-05-15 13:46:29

它固定在测试版:14.43.343.1

shouldOverrideUrlLoadingshouldInterceptLoadRequest现在都在工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29681825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档