jos*_*mmo 7 java android cordova
appView从最新的Android版Cordova版本(5.0.0)访问我时遇到了麻烦.
例如,假设我想在我的应用中添加Javascript界面.在此版本之前,我曾经写过这行代码:
super.appView.addJavascriptInterface(new WebAppInterface(this), "jsInterface");
Run Code Online (Sandbox Code Playgroud)
然后是WebAppInterface:
public class WebAppInterface { ... }
Run Code Online (Sandbox Code Playgroud)
现在,它只是不起作用.Cordova最近有变化吗?我真的不知道该怎么做.
在这两种情况下(先前版本和新版本),我的主要活动都具有以下结构:
public class CordovaApp extends CordovaActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
loadUrl(Config.getStartUrl());
...
}
Run Code Online (Sandbox Code Playgroud)
jos*_*mmo 19
经过几天的寻找解决方案,我终于让应用程序工作了.
Cordova已经改变了访问Android的方式webView.使用Cordova 5.0.0及更新版本的开发人员需要将此行添加到其主要活动中:
WebView wV = (WebView)appView.getEngine().getView();
Run Code Online (Sandbox Code Playgroud)
然后,像往常一样打电话给wV.例如,要添加Javascript接口:
wV.addJavascriptInterface(new WebAppInterface(this), "jsInterface");
Run Code Online (Sandbox Code Playgroud)
我希望这个答案可以帮助那些对这个新更新感到困惑的人.
在我找到你的答案之前,我正要放弃,这帮助我解决了一个相关的问题 - 感谢josemmo.
也许这会对其他人有所帮助:在更新到Cordova 5/Android 4之后,我无法触发我的WebViewClient的shouldOverrideUrlLoading-Method,因为在新创建的WebView上设置了WebViewClient
WebView webView = new WebView(this);
webView.setWebViewClient(new WebViewClient());
Run Code Online (Sandbox Code Playgroud)
在onCreate方法中什么也没做.
因此解决方案是不创建新的WebView,而是使用类似的铸造appView AND引擎:
SystemWebViewEngine systemWebViewEngine = (SystemWebViewEngine) appView.getEngine();
WebViewClient myWebViewClient = new myWebViewClient(systemWebViewEngine);
WebView webView = (WebView) systemWebViewEngine.getView();
webView.setWebViewClient(myWebViewClient);
Run Code Online (Sandbox Code Playgroud)
然后,自定义WebViewClient类需要一个构造函数:
public class myWebViewClient extends SystemWebViewClient {
public myWebViewClient(SystemWebViewEngine systemWebViewEngine) {
super(systemWebViewEngine);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我有点怀疑这应该怎么做,但至少它的工作.
| 归档时间: |
|
| 查看次数: |
6868 次 |
| 最近记录: |