0

我正在为将在 android 和 ios 上运行的 Web 应用程序开发一个包装器。我创建了一个简单的本机界面,如下所示:

在我的 WebView 中,我包括:

        addJavascriptInterface(new MyNativeJsIface(mContext), NATIVE_IFACE_JSNAME);

在 init() 方法中。

我继续实现该接口,并将以下行添加到我用于开发的测试 html 中:

var myNativeCallIface = window.nativeIface;

然后我可以从 html 中成功调用我在 api 中定义的方法,如下所示:

alert("response from native:" + nativeIface.method1() );

到目前为止还不错吧?

错误的...

我面临的问题是我无法将此代码加载到 Web 应用程序本身的 html 中,因此我需要一种方法来向 Web 应用程序的开发人员提供该接口而无需实际更改他们的代码。

我想做的是使此代码可用,以便当应用程序在 android 上运行时,它将加载 android js 代码,当它在 ios 上运行时,它将加载 ios js 实现(使用相同的方法签名)和我不需要围绕方法编写包装器来检查用户代理并采取相应措施。

这可能吗?我对这一切都错了吗?

4

0 回答 0