MobileFirst 中的浮动原生视图
Posted
技术标签:
【中文标题】MobileFirst 中的浮动原生视图【英文标题】:Floating native view in MobileFirst 【发布时间】:2016-01-12 12:09:50 【问题描述】:我想在我的 mobilefirst 混合页面上放置一个 android 原生视频视图
我查看了下面的这个链接,这对在混合 html 页面上方放置原生视图没有帮助。 (有创建原生活动的示例,但这里不是这样)
https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/adding-native-functionality/
我找到了一种解决方法及其工作,但我想要一个适当的解决方案
public void onInitWebFrameworkComplete(WLInitWebFrameworkResult result)
if (result.getStatusCode() == WLInitWebFrameworkResult.SUCCESS)
super.loadUrl(WL.getInstance().getMainHtmlFilePath());
video1 = new VideoView(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(300,300); //The WRAP_CONTENT parameters can be replaced by an absolute width and height or the FILL_PARENT option)
params.leftMargin = 100; //Your X coordinate
params.topMargin = 100; //Your Y coordinate
super.addContentView(video1, params);
video1.setVisibility(View.GONE);
else
handleWebFrameworkInitFailure(result);
private void handleWebFrameworkInitFailure(WLInitWebFrameworkResult result)
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setNegativeButton(R.string.close, new OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)
finish();
);
alertDialogBuilder.setTitle(R.string.error);
alertDialogBuilder.setMessage(result.getMessage());
alertDialogBuilder.setCancelable(false).create().show();
@Override
public void onActionReceived(String action, JSONObject data)
Log.d("TEST","********AM NATIVE**********");
if (action.equals("start_video"))
Log.d("TEST","********starting Video**********");
getActivity().runOnUiThread(new Runnable()
public void run()
video1.setVisibility(View.VISIBLE);
Uri uri=Uri.parse("/sdcard/a.mp4");
video1.setVideoURI(uri);
video1.start();
Log.d("TEST","Inside Thread");
);
else if (action.equals("stop_video"))
Log.d("TEST","********Stop Video**********");
video1.stopPlayback();
video1.setVisibility(View.GONE);
【问题讨论】:
是什么让您认为这是一种解决方法而不是正确的解决方案?这不是 mobilefirst应该给你的东西;如果你让它工作,那很好。你有解决方案。 我想知道是否有 WL.NativePage.show 之类的功能或仅显示视图的功能。 您可以在 MobileFirst 平台知识中心查看 SendAction API。 【参考方案1】:是什么让您认为这是一种变通方法而不是正确的解决方案?这不是mobilefirst应该给你的东西;如果你让它工作,那很好。你有办法。
也就是说,你还是应该看看这些教程:
https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/advanced-topics/integrating-server-generated-pages-hybrid-applications/ https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/adding-native-functionality/android-adding-native-ui-elements-hybrid-applications/【讨论】:
在我的代码中创建视图 onInitWebFrameworkComplete() 并使用 video1.setVisibility(View.GONE);然后在需要时显示本机视图(从 js 调用本机)。因此视图在应用程序启动时加载。因此它可能会影响应用程序性能。以上是关于MobileFirst 中的浮动原生视图的主要内容,如果未能解决你的问题,请参考以下文章